Control system with incentive-based control of building equipment

ABSTRACT

A control system includes building equipment configured to consume electrical energy and generate thermal energy, electrical energy storage configured to store and discharge electrical energy, and a controller. The controller is configured to determine, for a plurality of time steps within a time horizon, an amount of electrical energy to store in the electrical energy storage or discharge from the electrical energy storage using a value function. The value function includes an expected revenue from participating in an incentive-based demand response (IBDR) program, an expected cost of participating in the IBDR program, and a penalty cost based on an amount by which a predicted output of the building equipment or the electrical energy storage changes between time steps within the time horizon. The controller is configured to control the electrical energy storage to store or discharge the amount of electrical energy determined using the value function.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/247,879 filed Aug. 25, 2016, which claims the benefit of and priorityto U.S. Provisional Patent Application No. 62/239,131 filed Oct. 8,2015, U.S. Provisional Patent Application No. 62/239,231 filed Oct. 8,2015, U.S. Provisional Patent Application No. 62/239,233 filed Oct. 8,2015, U.S. Provisional Patent Application No. 62/239,245 filed Oct. 8,2015, U.S. Provisional Patent Application No. 62/239,246 filed Oct. 8,2015, and U.S. Provisional Patent Application No. 62/239,249 filed Oct.8, 2015. The entire disclosure of each of these patent applications isincorporated by reference herein.

BACKGROUND

The present disclosure relates generally to the operation of a centralplant for serving building thermal energy loads.

A central plant may include various types of equipment configured toserve the thermal energy loads of a building or campus. For example, acentral plant may include heaters, chillers, heat recovery chillers,cooling towers, or other types of equipment configured to provideheating or cooling for the building. A central plant may consumeresources from a utility (e.g., electricity, water, natural gas, etc.)to heat or cool a working fluid (e.g., water, glycol, etc.) that iscirculated to the building or stored for later use to provide heating orcooling for the building. Fluid conduits typically deliver the heated orchilled fluid to air handlers located on the rooftop of the building orto individual floors or zones of the building. The air handlers push airpast heat exchangers (e.g., heating coils or cooling coils) throughwhich the working fluid flows to provide heating or cooling to the air.The working fluid then returns to the central plant to receive furtherheating or cooling and the cycle continues.

High efficiency equipment can help reduce the amount of energy consumedby a central plant; however, the effectiveness of such equipment ishighly dependent on the control technology that is used to distributethe load across the multiple subplants. For example, it may be more costefficient to run heat pump chillers instead of conventional chillers anda water heater when energy prices are high. It is difficult andchallenging to determine when and to what extent each of the multiplesubplants should be used to minimize energy cost. If electrical demandcharges are considered, the optimization is even more complicated.

SUMMARY

One implementation of the present disclosure is a building managementsystem. The system includes building equipment configured to consumeelectrical energy and generate thermal energy for use in satisfying athermal energy load of a building, thermal energy storage configured tostore at least a portion of the thermal energy generated by the buildingequipment and to discharge the stored thermal energy, electrical energystorage configured to store electrical energy purchased from a utilityand to discharge the stored electrical energy, and a controller. Thecontroller is configured to determine, for each time step within a timehorizon, an optimal amount of electrical energy stored or discharged bythe electrical energy storage by optimizing a value function. The valuefunction includes expected revenue from participating in anincentive-based demand response (IBDR) program and an expected cost ofthe electrical energy consumed by the building equipment in order toparticipate in the IBDR program.

In some embodiments, the expected revenue from participating in the IBDRprogram may include an amount of revenue gained by selling a portion ofthe stored electrical energy to an energy grid.

In some embodiments, the expected cost of the electrical energy consumedby the building equipment in order to participate in the IBDR programmay include a monetary cost of the electrical energy purchased from theutility.

In some embodiments, he value function may include a monetized cost ofcapacity loss for the electrical energy storage in order to participatein the IBDR program.

In some embodiments, the controller may be configured to estimate themonetized cost of capacity loss for the electrical energy storage as afunction of an estimated amount of the electrical energy stored ordischarged by the electrical energy storage in order to participate inthe IBDR program.

In some embodiments controller may be configured to estimate themonetized cost of capacity loss for the electrical energy storage usinga battery capacity loss model.

In some embodiments, the value function may include a penalty cost ofequipment degradation in order to participate in the IBDR program.

In some embodiments, the controller may be configured to estimate thepenalty cost of equipment degradation as a function of an estimatednumber of on/off commands provided to the building equipment within thetime horizon in order to participate in the IBDR program.

In some embodiments, the value function may include a penalty cost basedon an amount by which a predicted output of the building equipmentchanges between consecutive time steps within the time horizon in orderto participate in the IBDR program.

Another implementation of the present disclosure is a method forcontrolling a building management system. The method includes usingbuilding equipment configured to consume electrical energy and generatethermal energy for use in satisfying a thermal energy load of abuilding. The method further includes storing at least a portion of thethermal energy generated by the building equipment in thermal energystorage and discharging the stored thermal energy from the thermalenergy storage. The method further includes storing electrical energypurchased from a utility in electrical energy storage and dischargingthe stored electrical energy from the electrical energy storage. Themethod further includes determining, for each time step within a timehorizon, an optimal amount of electrical energy stored or discharged bythe electrical energy storage by optimizing a value function. The valuefunction includes an expected revenue from participating in anincentive-based demand response (IBDR) program and an expected cost ofthe electrical energy consumed by the building equipment in order toparticipate in the IBDR program.

In some embodiments, the expected revenue from participating in the IBDRprogram may include an amount of revenue gained by selling a portion ofthe stored electrical energy to an energy grid.

In some embodiments, the expected cost of the electrical energy consumedby the building equipment in order to participate in the IBDR programmay include a monetary cost of the electrical energy purchased from theutility.

In some embodiments, the value function may include a monetized cost ofcapacity loss for the electrical energy storage in order to participatein the IBDR program.

In some embodiments, the method may include estimating the monetizedcost of capacity loss for the electrical energy storage as a function ofan estimated amount of the electrical energy stored or discharged by theelectrical energy storage in order to participate in the IBDR program.

In some embodiments, the method may include estimating the monetizedcost of capacity loss for the electrical energy storage using a batterycapacity loss model.

In some embodiments, the value function further comprises a penalty costof equipment degradation in order to participate in the IBDR program.

In some embodiments, the method includes estimating the penalty cost ofequipment degradation as a function of an estimated number of on/offcommands provided to the building equipment within the time horizon inorder to participate in the IBDR program.

In some embodiments, the value function further includes a penalty costbased on an amount by which a predicted output of the building equipmentchanges between consecutive time steps within the time horizon in orderto participate in the IBDR program.

Another implementation of the present disclosure is a controller. Thecontroller includes a processing circuit configured to estimate anexpected revenue from participating in an incentive based demandresponse (IBDR) program, estimate an expected cost of participating inthe IBDR program, weigh the expected revenue against the expected costto determine whether to participate in the IBDR program, generateoptimal control signals for electrical energy storage based on a resultof the weighing, and operate the electrical energy storage using theoptimal control signals.

In some embodiments, the expected revenue from participating in the IBDRprogram may include an expected amount of revenue gained by selling aportion of electrical energy stored in the electrical energy storage. Insome embodiments, the expected cost of participating in the IBDR programincludes at least one of an expected cost of electrical energy consumedby building equipment, a penalty cost of equipment degradation, and amonetized cost of capacity loss for the electrical energy storage.

Those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the devices and/orprocesses described herein, as defined solely by the claims, will becomeapparent in the detailed description set forth herein and taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a drawing of a building equipped with a building managementsystem (BMS) and a HVAC system

FIG. 2 is a schematic diagram of a waterside system, shown as a centralplant, which may be used to provide resources to the building of FIG. 1,according to an exemplary embodiment.

FIG. 3 is a schematic diagram of an airside system which may be used toprovide resources to the building of FIG. 1, according to an exemplaryembodiment.

FIG. 4 is a block diagram illustrating the BMS of FIG. 1 in greaterdetail, according to an exemplary embodiment.

FIG. 5 is a block diagram illustrating a central plant system includinga central plant controller that may be used to control the central plantof FIG. 2, according to an exemplary embodiment.

FIG. 6 is block diagram illustrating the central plant controller ofFIG. 5 in greater detail, according to an exemplary embodiment.

FIG. 7, a block diagram illustrating a portion of the central plantsystem of FIG. 5 in greater detail, according to an exemplaryembodiment.

FIG. 8 is a block diagram illustrating a high level optimizer of thecentral plant controller of FIG. 5 in greater detail, according to anexemplary embodiment.

FIGS. 9A-9B are subplant curves illustrating a relationship between theresource consumption of a subplant and the subplant load and which maybe used by the high level optimizer of FIG. 8 to optimize theperformance of the central plant, according to an exemplary embodiment.

FIG. 10 is a non-convex and nonlinear subplant curve that may begenerated from experimental data or by combining equipment curves forindividual devices of the central plant, according to an exemplaryembodiment.

FIG. 11 is a linearized subplant curve that may be generated from thesubplant curve of FIG. 10 by converting the non-convex and nonlinearsubplant curve into piecewise linear segments, according to an exemplaryembodiment.

FIG. 12 is a graph illustrating a set of subplant curves that may begenerated by the high level optimizer of FIG. 8 based on experimentaldata from a low level optimizer for multiple different environmentalconditions, according to an exemplary embodiment.

FIG. 13 is a block diagram of a planning system that incorporates thehigh level optimizer of FIG. 8, according to an exemplary embodiment.

FIG. 14 is a drawing illustrating the operation of the planning systemof FIG. 13, according to an exemplary embodiment.

FIG. 15 is a block diagram of an electrical energy storage system thatuses battery storage to perform both ramp rate control and frequencyregulation, according to an exemplary embodiment.

FIG. 16 is a drawing of the electrical energy storage system of FIG. 15,according to an exemplary embodiment.

FIG. 17 is a graph illustrating a reactive ramp rate control techniquewhich can be used by the electrical energy storage system of FIG. 15,according to an exemplary embodiment.

FIG. 18 is a graph illustrating a preemptive ramp rate control techniquewhich can be used by the electrical energy storage system of FIG. 15,according to an exemplary embodiment.

FIG. 19 is a block diagram of a frequency regulation and ramp ratecontroller which can be used to monitor and control the electricalenergy storage system of FIG. 15, according to an exemplary embodiment.

FIG. 20 is a block diagram of a frequency response optimization system,according to an exemplary embodiment.

FIG. 21 is a graph of a regulation signal which may be provided to thefrequency response optimization system of FIG. 20 and a frequencyresponse signal which may be generated by frequency responseoptimization system of FIG. 20, according to an exemplary embodiment.

FIG. 22 is a block diagram of a frequency response controller which canbe used to monitor and control the frequency response optimizationsystem of FIG. 20, according to an exemplary embodiment.

FIG. 23 is a block diagram of a high level controller which can be usedin the frequency response optimization system of FIG. 20, according toan exemplary embodiment.

FIG. 24 is a block diagram of a low level controller which can be usedin the frequency response optimization system of FIG. 20, according toan exemplary embodiment.

FIG. 25 is a block diagram of a frequency response control system,according to an exemplary embodiment.

FIG. 26 is a block diagram illustrating data flow into a data fusionmodule of the frequency response control system of FIG. 25, according toan exemplary embodiment.

FIG. 27 is a block diagram illustrating a database schema which can beused in the frequency response control system of FIG. 25, according toan exemplary embodiment.

DETAILED DESCRIPTION Overview

Referring generally to the FIGURES, a central plant and buildingmanagement system with price-based and incentive-based demand responseoptimization are shown, according to various exemplary embodiments. Thesystems and methods described herein may be used to control thedistribution, production, storage, and usage of resources in a centralplant. In some embodiments, a central plant controller performs anoptimization process determine an optimal allocation of resources (e.g.,thermal energy resources, water, electricity, etc.) for each time stepwithin an optimization period. The optimal allocation of resources mayinclude, for example, an optimal amount of each resource to purchasefrom utilities, an optimal amount of each resource to produce or convertusing generator subplants, an optimal amount of each resource to storeor remove from storage subplants, an optimal amount of each resource tosell to energy purchasers, and/or an optimal amount of each resource toprovide to a building or campus.

The central plant controller may be configured to maximize the economicvalue of operating the central plant over the duration of theoptimization period. The economic value may be defined by a valuefunction that expresses economic value as a function of the controldecisions made by the controller. The value function may account for thecost of resources purchased from utilities, revenue generated by sellingresources to energy purchasers, and the cost of operating the centralplant. In some embodiments, the cost of operating the central plantincludes a cost for losses in battery capacity as a result of thecharging and discharging electrical energy storage. The cost ofoperating the central plant may also include a cost of equipmentdegradation during the optimization period.

In some embodiments, the controller maximizes the life cycle economicvalue of the central plant equipment while participating in price-baseddemand response (PBDR) programs, incentive-based demand response (IBDR)programs, or simultaneously in both PBDR and IBDR programs. For IBDRprograms, the controller may use statistical estimates of past clearingprices, mileage ratios, and event probabilities to determine the revenuegeneration potential of selling stored energy to energy purchasers. ForPBDR programs, the controller may use predictions of ambient conditions,facility thermal loads, and thermodynamic models of installed equipmentto estimate the resource consumption of the building and/or thesubplants. The controller may use predictions of the resourceconsumption to monetize the costs of running the central plantequipment.

The controller may automatically determine (e.g., without humanintervention) a combination of PBDR and/or IBDR programs in which toparticipate over the optimization period in order to maximize economicvalue. For example, the controller may consider the revenue generationpotential of IBDR programs, the cost reduction potential of PBDRprograms, and the equipment maintenance/replacement costs that wouldresult from participating in various combinations of the IBDR programsand PBDR programs. The controller may weigh the benefits ofparticipation against the costs of participation to determine an optimalcombination of programs in which to participate. Advantageously, thisallows the controller to determine an optimal set of control decisions(e.g., an optimal resource allocation) that maximizes the overall valueof operating the central plant over the optimization period.

In some instances, the controller may determine that it would bebeneficial to participate in an IBDR program when the revenue generationpotential is high and/or the costs of participating are low. Forexample, the controller may receive notice of a synchronous reserveevent from an IBDR program which requires the central plant to shed apredetermined amount of power. The controller may determine that it isoptimal to participate in the IBDR program if a cold thermal energystorage subplant has enough capacity to provide cooling for the buildingwhile the load on a chiller subplant is reduced in order to shed thepredetermined amount of power.

In other instances, the controller may determine that it would not bebeneficial to participate in an IBDR program when the resources requiredto participate are better allocated elsewhere. For example, if thebuilding is close to setting a new peak demand that would greatlyincrease the PBDR costs, the controller may determine that only a smallportion of the electrical energy stored in the electrical energy storagewill be sold to energy purchasers in order to participate in a frequencyresponse market. The controller may determine that the remainder of theelectrical energy will be used to power the chiller subplant to preventa new peak demand from being set. These and other features of thecentral plant and/or building management system are described in greaterdetail below.

Building Management System and HVAC System

Referring now to FIGS. 1-4, an exemplary building management system(BMS) and HVAC system in which the systems and methods of the presentinvention may be implemented are shown, according to an exemplaryembodiment. Referring particularly to FIG. 1, a perspective view of abuilding 10 is shown. Building 10 is served by a BMS. A BMS is, ingeneral, a system of devices configured to control, monitor, and manageequipment in or around a building or building area. A BMS can include,for example, a HVAC system, a security system, a lighting system, a firealerting system, any other system that is capable of managing buildingfunctions or devices, or any combination thereof.

The BMS that serves building 10 includes a HVAC system 100. HVAC system100 may include a plurality of HVAC devices (e.g., heaters, chillers,air handling units, pumps, fans, thermal energy storage, etc.)configured to provide heating, cooling, ventilation, or other servicesfor building 10. For example, HVAC system 100 is shown to include awaterside system 120 and an airside system 130. Waterside system 120 mayprovide a heated or chilled fluid to an air handling unit of airsidesystem 130. Airside system 130 may use the heated or chilled fluid toheat or cool an airflow provided to building 10. An exemplary watersidesystem and airside system which may be used in HVAC system 100 aredescribed in greater detail with reference to FIGS. 2-3.

HVAC system 100 is shown to include a chiller 102, a boiler 104, and arooftop air handling unit (AHU) 106. Waterside system 120 may use boiler104 and chiller 102 to heat or cool a working fluid (e.g., water,glycol, etc.) and may circulate the working fluid to AHU 106. In variousembodiments, the HVAC devices of waterside system 120 may be located inor around building 10 (as shown in FIG. 1) or at an offsite locationsuch as a central plant (e.g., a chiller plant, a steam plant, a heatplant, etc.). The working fluid may be heated in boiler 104 or cooled inchiller 102, depending on whether heating or cooling is required inbuilding 10. Boiler 104 may add heat to the circulated fluid, forexample, by burning a combustible material (e.g., natural gas) or usingan electric heating element. Chiller 102 may place the circulated fluidin a heat exchange relationship with another fluid (e.g., a refrigerant)in a heat exchanger (e.g., an evaporator) to absorb heat from thecirculated fluid. The working fluid from chiller 102 and/or boiler 104may be transported to AHU 106 via piping 108.

AHU 106 may place the working fluid in a heat exchange relationship withan airflow passing through AHU 106 (e.g., via one or more stages ofcooling coils and/or heating coils). The airflow may be, for example,outside air, return air from within building 10, or a combination ofboth. AHU 106 may transfer heat between the airflow and the workingfluid to provide heating or cooling for the airflow. For example, AHU106 may include one or more fans or blowers configured to pass theairflow over or through a heat exchanger containing the working fluid.The working fluid may then return to chiller 102 or boiler 104 viapiping 110.

Airside system 130 may deliver the airflow supplied by AHU 106 (i.e.,the supply airflow) to building 10 via air supply ducts 112 and mayprovide return air from building 10 to AHU 106 via air return ducts 114.In some embodiments, airside system 130 includes multiple variable airvolume (VAV) units 116. For example, airside system 130 is shown toinclude a separate VAV unit 116 on each floor or zone of building 10.VAV units 116 may include dampers or other flow control elements thatcan be operated to control an amount of the supply airflow provided toindividual zones of building 10. In other embodiments, airside system130 delivers the supply airflow into one or more zones of building 10(e.g., via supply ducts 112) without using intermediate VAV units 116 orother flow control elements. AHU 106 may include various sensors (e.g.,temperature sensors, pressure sensors, etc.) configured to measureattributes of the supply airflow. AHU 106 may receive input from sensorslocated within AHU 106 and/or within the building zone and may adjustthe flow rate, temperature, or other attributes of the supply airflowthrough AHU 106 to achieve setpoint conditions for the building zone.

Referring now to FIG. 2, a block diagram of a waterside system 200 isshown, according to an exemplary embodiment. In various embodiments,waterside system 200 may supplement or replace waterside system 120 inHVAC system 100 or may be implemented separate from HVAC system 100.When implemented in HVAC system 100, waterside system 200 may include asubset of the HVAC devices in HVAC system 100 (e.g., boiler 104, chiller102, pumps, valves, etc.) and may operate to supply a heated or chilledfluid to AHU 106. The HVAC devices of waterside system 200 may belocated within building 10 (e.g., as components of waterside system 120)or at an offsite location such as a central plant.

Waterside system 200 is shown in FIG. 2 as a central plant having aplurality of subplants 202-212. Subplants 202-212 are shown to include aheater subplant 202, a heat recovery chiller subplant 204, a chillersubplant 206, a cooling tower subplant 208, a hot thermal energy storage(TES) subplant 210, and a cold thermal energy storage (TES) subplant212. Subplants 202-212 consume resources (e.g., water, natural gas,electricity, etc.) from utilities to serve the thermal energy loads(e.g., hot water, cold water, heating, cooling, etc.) of a building orcampus. For example, heater subplant 202 may be configured to heat waterin a hot water loop 214 that circulates the hot water between heatersubplant 202 and building 10. Chiller subplant 206 may be configured tochill water in a cold water loop 216 that circulates the cold waterbetween chiller subplant 206 building 10. Heat recovery chiller subplant204 may be configured to transfer heat from cold water loop 216 to hotwater loop 214 to provide additional heating for the hot water andadditional cooling for the cold water. Condenser water loop 218 mayabsorb heat from the cold water in chiller subplant 206 and reject theabsorbed heat in cooling tower subplant 208 or transfer the absorbedheat to hot water loop 214. Hot TES subplant 210 and cold TES subplant212 may store hot and cold thermal energy, respectively, for subsequentuse.

Hot water loop 214 and cold water loop 216 may deliver the heated and/orchilled water to air handlers located on the rooftop of building 10(e.g., AHU 106) or to individual floors or zones of building 10 (e.g.,VAV units 116). The air handlers push air past heat exchangers (e.g.,heating coils or cooling coils) through which the water flows to provideheating or cooling for the air. The heated or cooled air may bedelivered to individual zones of building 10 to serve the thermal energyloads of building 10. The water then returns to subplants 202-212 toreceive further heating or cooling.

Although subplants 202-212 are shown and described as heating andcooling water for circulation to a building, it is understood that anyother type of working fluid (e.g., glycol, CO2, etc.) may be used inplace of or in addition to water to serve the thermal energy loads. Inother embodiments, subplants 202-212 may provide heating and/or coolingdirectly to the building or campus without requiring an intermediateheat transfer fluid. These and other variations to waterside system 200are within the teachings of the present invention.

Each of subplants 202-212 may include a variety of equipment configuredto facilitate the functions of the subplant. For example, heatersubplant 202 is shown to include a plurality of heating elements 220(e.g., boilers, electric heaters, etc.) configured to add heat to thehot water in hot water loop 214. Heater subplant 202 is also shown toinclude several pumps 222 and 224 configured to circulate the hot waterin hot water loop 214 and to control the flow rate of the hot waterthrough individual heating elements 220. Chiller subplant 206 is shownto include a plurality of chillers 232 configured to remove heat fromthe cold water in cold water loop 216. Chiller subplant 206 is alsoshown to include several pumps 234 and 236 configured to circulate thecold water in cold water loop 216 and to control the flow rate of thecold water through individual chillers 232.

Heat recovery chiller subplant 204 is shown to include a plurality ofheat recovery heat exchangers 226 (e.g., refrigeration circuits)configured to transfer heat from cold water loop 216 to hot water loop214. Heat recovery chiller subplant 204 is also shown to include severalpumps 228 and 230 configured to circulate the hot water and/or coldwater through heat recovery heat exchangers 226 and to control the flowrate of the water through individual heat recovery heat exchangers 226.Cooling tower subplant 208 is shown to include a plurality of coolingtowers 238 configured to remove heat from the condenser water incondenser water loop 218. Cooling tower subplant 208 is also shown toinclude several pumps 240 configured to circulate the condenser water incondenser water loop 218 and to control the flow rate of the condenserwater through individual cooling towers 238.

Hot TES subplant 210 is shown to include a hot TES tank 242 configuredto store the hot water for later use. Hot TES subplant 210 may alsoinclude one or more pumps or valves configured to control the flow rateof the hot water into or out of hot TES tank 242. Cold TES subplant 212is shown to include cold TES tanks 244 configured to store the coldwater for later use. Cold TES subplant 212 may also include one or morepumps or valves configured to control the flow rate of the cold waterinto or out of cold TES tanks 244.

In some embodiments, one or more of the pumps in waterside system 200(e.g., pumps 222, 224, 228, 230, 234, 236, and/or 240) or pipelines inwaterside system 200 include an isolation valve associated therewith.Isolation valves may be integrated with the pumps or positioned upstreamor downstream of the pumps to control the fluid flows in watersidesystem 200. In various embodiments, waterside system 200 may includemore, fewer, or different types of devices and/or subplants based on theparticular configuration of waterside system 200 and the types of loadsserved by waterside system 200.

Referring now to FIG. 3, a block diagram of an airside system 300 isshown, according to an exemplary embodiment. In various embodiments,airside system 300 may supplement or replace airside system 130 in HVACsystem 100 or may be implemented separate from HVAC system 100. Whenimplemented in HVAC system 100, airside system 300 may include a subsetof the HVAC devices in HVAC system 100 (e.g., AHU 106, VAV units 116,ducts 112-114, fans, dampers, etc.) and may be located in or aroundbuilding 10. Airside system 300 may operate to heat or cool an airflowprovided to building 10 using a heated or chilled fluid provided bywaterside system 200.

Airside system 300 is shown in FIG. 3 as an economizer-type air handlingunit (AHU) 302. Economizer-type AHUs vary the amount of outside air andreturn air used by the air handling unit for heating or cooling. Forexample, AHU 302 may receive return air 304 from building zone 306 viareturn air duct 308 and may deliver supply air 310 to building zone 306via supply air duct 312. In some embodiments, AHU 302 is a rooftop unitlocated on the roof of building 10 (e.g., AHU 106 as shown in FIG. 1) orotherwise positioned to receive both return air 304 and outside air 314.AHU 302 may be configured to operate exhaust air damper 316, mixingdamper 318, and outside air damper 320 to control an amount of outsideair 314 and return air 304 that combine to form supply air 310. Anyreturn air 304 that does not pass through mixing damper 318 may beexhausted from AHU 302 through exhaust damper 316 as exhaust air 322.

Each of dampers 316-320 may be operated by an actuator. For example,exhaust air damper 316 may be operated by actuator 324, mixing damper318 may be operated by actuator 326, and outside air damper 320 may beoperated by actuator 328. Actuators 324-328 may communicate with an AHUcontroller 330 via a communications link 332. Actuators 324-328 mayreceive control signals from AHU controller 330 and may provide feedbacksignals to AHU controller 330. Feedback signals may include, forexample, an indication of a current actuator or damper position, anamount of torque or force exerted by the actuator, diagnosticinformation (e.g., results of diagnostic tests performed by actuators324-328), status information, commissioning information, configurationsettings, calibration data, and/or other types of information or datathat may be collected, stored, or used by actuators 324-328. AHUcontroller 330 may be an economizer controller configured to use one ormore control algorithms (e.g., state-based algorithms, extremum seekingcontrol (ESC) algorithms, proportional-integral (PI) control algorithms,proportional-integral-derivative (PID) control algorithms, modelpredictive control (MPC) algorithms, feedback control algorithms, etc.)to control actuators 324-328.

Still referring to FIG. 3, AHU 302 is shown to include a cooling coil334, a heating coil 336, and a fan 338 positioned within supply air duct312. Fan 338 may be configured to force supply air 310 through coolingcoil 334 and/or heating coil 336 and provide supply air 310 to buildingzone 306. AHU controller 330 may communicate with fan 338 viacommunications link 340 to control a flow rate of supply air 310. Insome embodiments, AHU controller 330 controls an amount of heating orcooling applied to supply air 310 by modulating a speed of fan 338.

Cooling coil 334 may receive a chilled fluid from waterside system 200(e.g., from cold water loop 216) via piping 342 and may return thechilled fluid to waterside system 200 via piping 344. Valve 346 may bepositioned along piping 342 or piping 344 to control a flow rate of thechilled fluid through cooling coil 334. In some embodiments, coolingcoil 334 includes multiple stages of cooling coils that can beindependently activated and deactivated (e.g., by AHU controller 330, byBMS controller 366, etc.) to modulate an amount of cooling applied tosupply air 310.

Heating coil 336 may receive a heated fluid from waterside system 200(e.g., from hot water loop 214) via piping 348 and may return the heatedfluid to waterside system 200 via piping 350. Valve 352 may bepositioned along piping 348 or piping 350 to control a flow rate of theheated fluid through heating coil 336. In some embodiments, heating coil336 includes multiple stages of heating coils that can be independentlyactivated and deactivated (e.g., by AHU controller 330, by BMScontroller 366, etc.) to modulate an amount of heating applied to supplyair 310.

Each of valves 346 and 352 may be controlled by an actuator. Forexample, valve 346 may be controlled by actuator 354 and valve 352 maybe controlled by actuator 356. Actuators 354-356 may communicate withAHU controller 330 via communications links 358-360. Actuators 354-356may receive control signals from AHU controller 330 and may providefeedback signals to controller 330. In some embodiments, AHU controller330 receives a measurement of the supply air temperature from atemperature sensor 362 positioned in supply air duct 312 (e.g.,downstream of cooling coil 334 and/or heating coil 336). AHU controller330 may also receive a measurement of the temperature of building zone306 from a temperature sensor 364 located in building zone 306.

In some embodiments, AHU controller 330 operates valves 346 and 352 viaactuators 354-356 to modulate an amount of heating or cooling providedto supply air 310 (e.g., to achieve a setpoint temperature for supplyair 310 or to maintain the temperature of supply air 310 within asetpoint temperature range). The positions of valves 346 and 352 affectthe amount of heating or cooling provided to supply air 310 by coolingcoil 334 or heating coil 336 and may correlate with the amount of energyconsumed to achieve a desired supply air temperature. AHU controller 330may control the temperature of supply air 310 and/or building zone 306by activating or deactivating coils 334-336, adjusting a speed of fan338, or a combination of both.

Still referring to FIG. 3, airside system 300 is shown to include abuilding management system (BMS) controller 366 and a client device 368.BMS controller 366 may include one or more computer systems (e.g.,servers, supervisory controllers, subsystem controllers, etc.) thatserve as system level controllers, application or data servers, headnodes, or master controllers for airside system 300, waterside system200, HVAC system 100, and/or other controllable systems that servebuilding 10. BMS controller 366 may communicate with multiple downstreambuilding systems or subsystems (e.g., HVAC system 100, a securitysystem, a lighting system, waterside system 200, etc.) via acommunications link 370 according to like or disparate protocols (e.g.,LON, BACnet, etc.). In various embodiments, AHU controller 330 and BMScontroller 366 may be separate (as shown in FIG. 3) or integrated. In anintegrated implementation, AHU controller 330 may be a software moduleconfigured for execution by a processor of BMS controller 366.

In some embodiments, AHU controller 330 receives information from BMScontroller 366 (e.g., commands, setpoints, operating boundaries, etc.)and provides information to BMS controller 366 (e.g., temperaturemeasurements, valve or actuator positions, operating statuses,diagnostics, etc.). For example, AHU controller 330 may provide BMScontroller 366 with temperature measurements from temperature sensors362-364, equipment on/off states, equipment operating capacities, and/orany other information that can be used by BMS controller 366 to monitoror control a variable state or condition within building zone 306.

Client device 368 may include one or more human-machine interfaces orclient interfaces (e.g., graphical user interfaces, reportinginterfaces, text-based computer interfaces, client-facing web services,web servers that provide pages to web clients, etc.) for controlling,viewing, or otherwise interacting with HVAC system 100, its subsystems,and/or devices. Client device 368 may be a computer workstation, aclient terminal, a remote or local interface, or any other type of userinterface device. Client device 368 may be a stationary terminal or amobile device. For example, client device 368 may be a desktop computer,a computer server with a user interface, a laptop computer, a tablet, asmartphone, a PDA, or any other type of mobile or non-mobile device.Client device 368 may communicate with BMS controller 366 and/or AHUcontroller 330 via communications link 372.

Referring now to FIG. 4, a block diagram of a building management system(BMS) 400 is shown, according to an exemplary embodiment. BMS 400 may beimplemented in building 10 to automatically monitor and control variousbuilding functions. BMS 400 is shown to include BMS controller 366 and aplurality of building subsystems 428. Building subsystems 428 are shownto include a building electrical subsystem 434, an informationcommunication technology (ICT) subsystem 436, a security subsystem 438,a HVAC subsystem 440, a lighting subsystem 442, a lift/escalatorssubsystem 432, and a fire safety subsystem 430. In various embodiments,building subsystems 428 can include fewer, additional, or alternativesubsystems. For example, building subsystems 428 may also oralternatively include a refrigeration subsystem, an advertising orsignage subsystem, a cooking subsystem, a vending subsystem, a printeror copy service subsystem, or any other type of building subsystem thatuses controllable equipment and/or sensors to monitor or controlbuilding 10. In some embodiments, building subsystems 428 includewaterside system 200 and/or airside system 300, as described withreference to FIGS. 2-3.

Each of building subsystems 428 may include any number of devices,controllers, and connections for completing its individual functions andcontrol activities. HVAC subsystem 440 may include many of the samecomponents as HVAC system 100, waterside system 200, and/or airsidesystem 300, as described with reference to FIGS. 1-3. For example, HVACsubsystem 440 may include one or more chillers, boilers, heatexchangers, air handling units, economizers, field controllers,supervisory controllers, actuators, temperature sensors, and otherdevices for controlling the temperature, humidity, airflow, or othervariable conditions within building 10. Lighting subsystem 442 mayinclude any number of light fixtures, ballasts, lighting sensors,dimmers, or other devices configured to controllably adjust the amountof light provided to a building space. Security subsystem 438 mayinclude occupancy sensors, video surveillance cameras, digital videorecorders, video processing servers, intrusion detection devices, accesscontrol devices and servers, or other security-related devices.

Still referring to FIG. 4, BMS controller 366 is shown to include acommunications interface 407 and a BMS interface 409. Interface 407 mayfacilitate communications between BMS controller 366 and externalapplications (e.g., monitoring and reporting applications 422,enterprise control applications 426, remote systems and applications444, applications residing on client devices 448, etc.) for allowinguser control, monitoring, and adjustment to BMS controller 366 and/orsubsystems 428. Interface 407 may also facilitate communications betweenBMS controller 366 and client devices 448. BMS interface 409 mayfacilitate communications between BMS controller 366 and buildingsubsystems 428 (e.g., HVAC, lighting security, lifts, powerdistribution, business, etc.).

Interfaces 407, 409 can be or include wired or wireless communicationsinterfaces (e.g., jacks, antennas, transmitters, receivers,transceivers, wire terminals, etc.) for conducting data communicationswith building subsystems 428 or other external systems or devices. Invarious embodiments, communications via interfaces 407, 409 may bedirect (e.g., local wired or wireless communications) or via acommunications network 446 (e.g., a WAN, the Internet, a cellularnetwork, etc.). For example, interfaces 407, 409 can include an Ethernetcard and port for sending and receiving data via an Ethernet-basedcommunications link or network. In another example, interfaces 407, 409can include a WiFi transceiver for communicating via a wirelesscommunications network. In another example, one or both of interfaces407, 409 may include cellular or mobile phone communicationstransceivers. In one embodiment, communications interface 407 is a powerline communications interface and BMS interface 409 is an Ethernetinterface. In other embodiments, both communications interface 407 andBMS interface 409 are Ethernet interfaces or are the same Ethernetinterface.

Still referring to FIG. 4, BMS controller 366 is shown to include aprocessing circuit 404 including a processor 406 and memory 408.Processing circuit 404 may be communicably connected to BMS interface409 and/or communications interface 407 such that processing circuit 404and the various components thereof can send and receive data viainterfaces 407, 409. Processor 406 can be implemented as a generalpurpose processor, an application specific integrated circuit (ASIC),one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable electronic processingcomponents.

Memory 408 (e.g., memory, memory unit, storage device, etc.) may includeone or more devices (e.g., RAM, ROM, Flash memory, hard disk storage,etc.) for storing data and/or computer code for completing orfacilitating the various processes, layers and modules described in thepresent application. Memory 408 may be or include volatile memory ornon-volatile memory. Memory 408 may include database components, objectcode components, script components, or any other type of informationstructure for supporting the various activities and informationstructures described in the present application. According to anexemplary embodiment, memory 408 is communicably connected to processor406 via processing circuit 404 and includes computer code for executing(e.g., by processing circuit 404 and/or processor 406) one or moreprocesses described herein.

In some embodiments, BMS controller 366 is implemented within a singlecomputer (e.g., one server, one housing, etc.). In various otherembodiments BMS controller 366 may be distributed across multipleservers or computers (e.g., that can exist in distributed locations).Further, while FIG. 4 shows applications 422 and 426 as existing outsideof BMS controller 366, in some embodiments, applications 422 and 426 maybe hosted within BMS controller 366 (e.g., within memory 408).

Still referring to FIG. 4, memory 408 is shown to include an enterpriseintegration layer 410, an automated measurement and validation (AM&V)layer 412, a demand response (DR) layer 414, a fault detection anddiagnostics (FDD) layer 416, an integrated control layer 418, and abuilding subsystem integration later 420. Layers 410-420 may beconfigured to receive inputs from building subsystems 428 and other datasources, determine optimal control actions for building subsystems 428based on the inputs, generate control signals based on the optimalcontrol actions, and provide the generated control signals to buildingsubsystems 428. The following paragraphs describe some of the generalfunctions performed by each of layers 410-420 in BMS 400.

Enterprise integration layer 410 may be configured to serve clients orlocal applications with information and services to support a variety ofenterprise-level applications. For example, enterprise controlapplications 426 may be configured to provide subsystem-spanning controlto a graphical user interface (GUI) or to any number of enterprise-levelbusiness applications (e.g., accounting systems, user identificationsystems, etc.). Enterprise control applications 426 may also oralternatively be configured to provide configuration GUIs forconfiguring BMS controller 366. In yet other embodiments, enterprisecontrol applications 426 can work with layers 410-420 to optimizebuilding performance (e.g., efficiency, energy use, comfort, or safety)based on inputs received at interface 407 and/or BMS interface 409.

Building subsystem integration layer 420 may be configured to managecommunications between BMS controller 366 and building subsystems 428.For example, building subsystem integration layer 420 may receive sensordata and input signals from building subsystems 428 and provide outputdata and control signals to building subsystems 428. Building subsystemintegration layer 420 may also be configured to manage communicationsbetween building subsystems 428. Building subsystem integration layer420 translate communications (e.g., sensor data, input signals, outputsignals, etc.) across a plurality of multi-vendor/multi-protocolsystems.

Demand response layer 414 may be configured to optimize resource usage(e.g., electricity use, natural gas use, water use, etc.) and/or themonetary cost of such resource usage in response to satisfy the demandof building 10. The optimization may be based on time-of-use prices,curtailment signals, energy availability, or other data received fromutility providers, distributed energy generation systems 424, energystorage 427 (e.g., hot TES 242, cold TES 244, electrical energy storage,etc.), or from other sources. Demand response layer 414 may receiveinputs from other layers of BMS controller 366 (e.g., building subsystemintegration layer 420, integrated control layer 418, etc.). The inputsreceived from other layers may include environmental or sensor inputssuch as temperature, carbon dioxide levels, relative humidity levels,air quality sensor outputs, occupancy sensor outputs, room schedules,and the like. The inputs may also include inputs such as electrical use(e.g., expressed in kWh), thermal load measurements, pricinginformation, projected pricing, smoothed pricing, curtailment signalsfrom utilities, and the like.

According to an exemplary embodiment, demand response layer 414 includescontrol logic for responding to the data and signals it receives. Theseresponses can include communicating with the control algorithms inintegrated control layer 418, changing control strategies, changingsetpoints, or activating/deactivating building equipment or subsystemsin a controlled manner. Demand response layer 414 may also includecontrol logic configured to determine when to utilize stored energy. Forexample, demand response layer 414 may determine to begin using energyfrom energy storage 427 just prior to the beginning of a peak use hour.

In some embodiments, demand response layer 414 includes a control moduleconfigured to actively initiate control actions (e.g., automaticallychanging setpoints) which minimize energy costs based on one or moreinputs representative of or based on demand (e.g., price, a curtailmentsignal, a demand level, etc.). In some embodiments, demand responselayer 414 uses equipment models to determine an optimal set of controlactions. The equipment models may include, for example, thermodynamicmodels describing the inputs, outputs, and/or functions performed byvarious sets of building equipment. Equipment models may representcollections of building equipment (e.g., subplants, chiller arrays,etc.) or individual devices (e.g., individual chillers, heaters, pumps,etc.).

Demand response layer 414 may further include or draw upon one or moredemand response policy definitions (e.g., databases, XML, files, etc.).The policy definitions may be edited or adjusted by a user (e.g., via agraphical user interface) so that the control actions initiated inresponse to demand inputs may be tailored for the user's application,desired comfort level, particular building equipment, or based on otherconcerns. For example, the demand response policy definitions canspecify which equipment may be turned on or off in response toparticular demand inputs, how long a system or piece of equipment shouldbe turned off, what setpoints can be changed, what the allowable setpoint adjustment range is, how long to hold a high demand setpointbefore returning to a normally scheduled setpoint, how close to approachcapacity limits, which equipment modes to utilize, the energy transferrates (e.g., the maximum rate, an alarm rate, other rate boundaryinformation, etc.) into and out of energy storage devices (e.g., thermalstorage tanks, battery banks, etc.), and when to dispatch on-sitegeneration of energy (e.g., via fuel cells, a motor generator set,etc.).

Integrated control layer 418 may be configured to use the data input oroutput of building subsystem integration layer 420 and/or demandresponse later 414 to make control decisions. Due to the subsystemintegration provided by building subsystem integration layer 420,integrated control layer 418 can integrate control activities of thesubsystems 428 such that the subsystems 428 behave as a singleintegrated supersystem. In an exemplary embodiment, integrated controllayer 418 includes control logic that uses inputs and outputs from aplurality of building subsystems to provide greater comfort and energysavings relative to the comfort and energy savings that separatesubsystems could provide alone. For example, integrated control layer418 may be configured to use an input from a first subsystem to make anenergy-saving control decision for a second subsystem. Results of thesedecisions can be communicated back to building subsystem integrationlayer 420.

Integrated control layer 418 is shown to be logically below demandresponse layer 414. Integrated control layer 418 may be configured toenhance the effectiveness of demand response layer 414 by enablingbuilding subsystems 428 and their respective control loops to becontrolled in coordination with demand response layer 414. Thisconfiguration may advantageously reduce disruptive demand responsebehavior relative to conventional systems. For example, integratedcontrol layer 418 may be configured to assure that a demandresponse-driven upward adjustment to the setpoint for chilled watertemperature (or another component that directly or indirectly affectstemperature) does not result in an increase in fan energy (or otherenergy used to cool a space) that would result in greater total buildingenergy use than was saved at the chiller.

Integrated control layer 418 may be configured to provide feedback todemand response layer 414 so that demand response layer 414 checks thatconstraints (e.g., temperature, lighting levels, etc.) are properlymaintained even while demanded load shedding is in progress. Theconstraints may also include setpoint or sensed boundaries relating tosafety, equipment operating limits and performance, comfort, fire codes,electrical codes, energy codes, and the like. Integrated control layer418 is also logically below fault detection and diagnostics layer 416and automated measurement and validation layer 412. Integrated controllayer 418 may be configured to provide calculated inputs (e.g.,aggregations) to these higher levels based on outputs from more than onebuilding subsystem.

Automated measurement and validation (AM&V) layer 412 may be configuredto verify that control strategies commanded by integrated control layer418 or demand response layer 414 are working properly (e.g., using dataaggregated by AM&V layer 412, integrated control layer 418, buildingsubsystem integration layer 420, FDD layer 416, or otherwise). Thecalculations made by AM&V layer 412 may be based on building systemenergy models and/or equipment models for individual BMS devices orsubsystems. For example, AM&V layer 412 may compare a model-predictedoutput with an actual output from building subsystems 428 to determinean accuracy of the model.

Fault detection and diagnostics (FDD) layer 416 may be configured toprovide on-going fault detection for building subsystems 428, buildingsubsystem devices (i.e., building equipment), and control algorithmsused by demand response layer 414 and integrated control layer 418. FDDlayer 416 may receive data inputs from integrated control layer 418,directly from one or more building subsystems or devices, or fromanother data source. FDD layer 416 may automatically diagnose andrespond to detected faults. The responses to detected or diagnosedfaults may include providing an alert message to a user, a maintenancescheduling system, or a control algorithm configured to attempt torepair the fault or to work-around the fault.

FDD layer 416 may be configured to output a specific identification ofthe faulty component or cause of the fault (e.g., loose damper linkage)using detailed subsystem inputs available at building subsystemintegration layer 420. In other exemplary embodiments, FDD layer 416 isconfigured to provide “fault” events to integrated control layer 418which executes control strategies and policies in response to thereceived fault events. According to an exemplary embodiment, FDD layer416 (or a policy executed by an integrated control engine or businessrules engine) may shut-down systems or direct control activities aroundfaulty devices or systems to reduce energy waste, extend equipment life,or assure proper control response.

FDD layer 416 may be configured to store or access a variety ofdifferent system data stores (or data points for live data). FDD layer416 may use some content of the data stores to identify faults at theequipment level (e.g., specific chiller, specific AHU, specific terminalunit, etc.) and other content to identify faults at component orsubsystem levels. For example, building subsystems 428 may generatetemporal (i.e., time-series) data indicating the performance of BMS 400and the various components thereof. The data generated by buildingsubsystems 428 may include measured or calculated values that exhibitstatistical characteristics and provide information about how thecorresponding system or process (e.g., a temperature control process, aflow control process, etc.) is performing in terms of error from itssetpoint. These processes can be examined by FDD layer 416 to exposewhen the system begins to degrade in performance and alert a user torepair the fault before it becomes more severe.

Central Plant System with Thermal and Electrical Energy Storage

Referring now to FIG. 5, a block diagram of a central plant system 500is shown, according to an exemplary embodiment. Central plant system 500is shown to include a building 502. Building 502 may be the same orsimilar to building 10, as described with reference to FIG. 1. Forexample, building 502 may be equipped with a HVAC system and/or abuilding management system (e.g., BMS 400) that operates to controlconditions within building 502. In some embodiments, building 502includes multiple buildings (i.e., a campus) served by central plantsystem 500. Building 502 may demand various resources including, forexample, hot thermal energy (e.g., hot water), cold thermal energy(e.g., cold water), and/or electrical energy. The resources may bedemanded by equipment or subsystems within building 502 (e.g., buildingsubsystems 428) or by external systems that provide services forbuilding 502 (e.g., heating, cooling, air circulation, lighting,electricity, etc.). Central plant system 500 operates to satisfy theresource demand associated with building 502.

Central plant system 500 is shown to include a plurality of utilities510. Utilities 510 may provide central plant system 500 with resourcessuch as electricity, water, natural gas, or any other resource that canbe used by central plant system 500 to satisfy the demand of building502. For example, utilities 510 are shown to include an electric utility511, a water utility 512, a natural gas utility 513, and utility M 514,where M is the total number of utilities 510. In some embodiments,utilities 510 are commodity suppliers from which resources and othertypes of commodities can be purchased. Resources purchased fromutilities 510 can be used by generator subplants 520 to producegenerated resources (e.g., hot water, cold water, electricity, steam,etc.), stored in storage subplants 530 for later use, or provideddirectly to building 502. For example, utilities 510 are shown providingelectricity directly to building 502 and storage subplants 530.

Central plant system 500 is shown to include a plurality of generatorsubplants 520. In some embodiments, generator subplants 520 include oneor more of the subplants described with reference to FIG. 2. Forexample, generator subplants 520 are shown to include a heater subplant521, a chiller subplant 522, a heat recovery chiller subplant 523, asteam subplant 524, an electricity subplant 525, and subplant N, where Nis the total number of generator subplants 520. Generator subplants 520may be configured to convert one or more input resources into one ormore output resources by operation of the equipment within generatorsubplants 520. For example, heater subplant 521 may be configured togenerate hot thermal energy (e.g., hot water) by heating water usingelectricity or natural gas. Chiller subplant 522 may be configured togenerate cold thermal energy (e.g., cold water) by chilling water usingelectricity. Heat recovery chiller subplant 523 may be configured togenerate hot thermal energy and cold thermal energy by removing heatfrom one water supply and adding the heat to another water supply. Steamsubplant 524 may be configured to generate steam by boiling water usingelectricity or natural gas. Electricity subplant 525 may be configuredto generate electricity using mechanical generators (e.g., a steamturbine, a gas-powered generator, etc.) or other types ofelectricity-generating equipment (e.g., photovoltaic equipment,hydroelectric equipment, etc.).

The input resources used by generator subplants 520 may be provided byutilities 510, retrieved from storage subplants 530, and/or generated byother generator subplants 520. For example, steam subplant 524 mayproduce steam as an output resource. Electricity subplant 525 mayinclude a steam turbine that uses the steam generated by steam subplant524 as an input resource to generate electricity. The output resourcesproduced by generator subplants 520 may be stored in storage subplants530, provided to building 502, sold to energy purchasers 504, and/orused by other generator subplants 520. For example, the electricitygenerated by electricity subplant 525 may be stored in electrical energystorage 533, used by chiller subplant 522 to generate cold thermalenergy, provided to building 502, and/or sold to energy purchasers 504.

Central plant system 500 is shown to include storage subplants 530.Storage subplants 530 may be configured to store energy and other typesof resources for later use. Each of storage subplants 530 may beconfigured to store a different type of resource. For example, storagesubplants 530 are shown to include hot thermal energy storage 531 (e.g.,one or more hot water storage tanks), cold thermal energy storage 532(e.g., one or more cold thermal energy storage tanks), electrical energystorage 533 (e.g., one or more batteries), and resource type P storage534, where P is the total number of storage subplants 530. The resourcesstored in subplants 530 may be purchased directly from utilities 510 orgenerated by generator subplants 520.

In some embodiments, storage subplants 530 are used by central plantsystem 500 to take advantage of price-based demand response (PBDR)programs. PBDR programs encourage consumers to reduce consumption whengeneration, transmission, and distribution costs are high. PBDR programsare typically implemented (e.g., by utilities 510) in the form of energyprices that vary as a function of time. For example, utilities 510 mayincrease the price per unit of electricity during peak usage hours toencourage customers to reduce electricity consumption during peak times.Some utilities also charge consumers a separate demand charge based onthe maximum rate of electricity consumption at any time during apredetermined demand charge period.

Advantageously, storing energy and other types of resources in subplants530 allows for the resources to be purchased at times when the resourcesare relatively less expensive (e.g., during non-peak electricity hours)and stored for use at times when the resources are relatively moreexpensive (e.g., during peak electricity hours). Storing resources insubplants 530 also allows the resource demand of building 502 to beshifted in time. For example, resources can be purchased from utilities510 at times when the demand for heating or cooling is low andimmediately converted into hot or cold thermal energy by generatorsubplants 520. The thermal energy can be stored in storage subplants 530and retrieved at times when the demand for heating or cooling is high.This allows central plant system 500 to smooth the resource demand ofbuilding 502 and reduces the maximum required capacity of generatorsubplants 520. Smoothing the demand also allows central plant system 500to reduce the peak electricity consumption, which results in a lowerdemand charge.

In some embodiments, storage subplants 530 are used by central plantsystem 500 to take advantage of incentive-based demand response (IBDR)programs. IBDR programs provide incentives to customers who have thecapability to store energy, generate energy, or curtail energy usageupon request. Incentives are typically provided in the form of monetaryrevenue paid by utilities 510 or by an independent service operator(ISO). IBDR programs supplement traditional utility-owned generation,transmission, and distribution assets with additional options formodifying demand load curves. For example, stored energy can be sold toenergy purchasers 504 (e.g., an energy grid) to supplement the energygenerated by utilities 510. In some instances, incentives forparticipating in an IBDR program vary based on how quickly a system canrespond to a request to change power output/consumption. Fasterresponses may be compensated at a higher level. Advantageously,electrical energy storage 533 allows system 500 to quickly respond to arequest for electric power by rapidly discharging stored electricalenergy to energy purchasers 504.

Still referring to FIG. 5, central plant system 500 is shown to includea central plant controller 506. Central plant controller 506 may beconfigured to control the distribution, production, storage, and usageof resources in central plant system 500. In some embodiments, centralplant controller 506 performs an optimization process determine anoptimal set of control decisions for each time step within anoptimization period. The control decisions may include, for example, anoptimal amount of each resource to purchase from utilities 510, anoptimal amount of each resource to produce or convert using generatorsubplants 520, an optimal amount of each resource to store or removefrom storage subplants 530, an optimal amount of each resource to sellto energy purchasers 504, and/or an optimal amount of each resource toprovide to building 502. In some embodiments, the control decisionsinclude an optimal amount of each input resource and output resource foreach of generator subplants 520.

Controller 506 may be configured to maximize the economic value ofoperating central plant system 500 over the duration of the optimizationperiod. The economic value may be defined by a value function thatexpresses economic value as a function of the control decisions made bycontroller 506. The value function may account for the cost of resourcespurchased from utilities 510, revenue generated by selling resources toenergy purchasers 504, and the cost of operating central plant system500. In some embodiments, the cost of operating central plant system 500includes a cost for losses in battery capacity as a result of thecharging and discharging electrical energy storage 533. The cost ofoperating central plant system 500 may also include a cost of excessiveequipment start/stops during the optimization period.

Each of subplants 520-530 may include equipment that can be controlledby central plant controller 506 to optimize the performance of centralplant system 500. Subplant equipment may include, for example, heatingdevices, chillers, heat recovery heat exchangers, cooling towers, energystorage devices, pumps, valves, and/or other devices of subplants520-530. Individual devices of generator subplants 520 can be turned onor off to adjust the resource production of each generator subplant. Insome embodiments, individual devices of generator subplants 520 can beoperated at variable capacities (e.g., operating a chiller at 10%capacity or 60% capacity) according to an operating setpoint receivedfrom central plant controller 506.

In some embodiments, one or more of subplants 520-530 includes asubplant level controller configured to control the equipment of thecorresponding subplant. For example, central plant controller 506 maydetermine an on/off configuration and global operating setpoints for thesubplant equipment. In response to the on/off configuration and receivedglobal operating setpoints, the subplant controllers may turn individualdevices of their respective equipment on or off, and implement specificoperating setpoints (e.g., damper position, vane position, fan speed,pump speed, etc.) to reach or maintain the global operating setpoints.

In some embodiments, controller 506 maximizes the life cycle economicvalue of central plant system 500 while participating in PBDR programs,IBDR programs, or simultaneously in both PBDR and IBDR programs. For theIBDR programs, controller 506 may use statistical estimates of pastclearing prices, mileage ratios, and event probabilities to determinethe revenue generation potential of selling stored energy to energypurchasers 504. For the PBDR programs, controller 506 may usepredictions of ambient conditions, facility thermal loads, andthermodynamic models of installed equipment to estimate the resourceconsumption of subplants 520. Controller 506 may use predictions of theresource consumption to monetize the costs of running the equipment.

Controller 506 may automatically determine (e.g., without humanintervention) a combination of PBDR and/or IBDR programs in which toparticipate over the optimization period in order to maximize economicvalue. For example, controller 506 may consider the revenue generationpotential of IBDR programs, the cost reduction potential of PBDRprograms, and the equipment maintenance/replacement costs that wouldresult from participating in various combinations of the IBDR programsand PBDR programs. Controller 506 may weigh the benefits ofparticipation against the costs of participation to determine an optimalcombination of programs in which to participate. Advantageously, thisallows controller 506 to determine an optimal set of control decisionsthat maximize the overall value of operating central plant system 500.

In some instances, controller 506 may determine that it would bebeneficial to participate in an IBDR program when the revenue generationpotential is high and/or the costs of participating are low. Forexample, controller 506 may receive notice of a synchronous reserveevent from an IBDR program which requires central plant system 500 toshed a predetermined amount of power. Controller 506 may determine thatit is optimal to participate in the IBDR program if cold thermal energystorage 532 has enough capacity to provide cooling for building 502while the load on chiller subplant 522 is reduced in order to shed thepredetermined amount of power.

In other instances, controller 506 may determine that it would not bebeneficial to participate in an IBDR program when the resources requiredto participate are better allocated elsewhere. For example, if building502 is close to setting a new peak demand that would greatly increasethe PBDR costs, controller 506 may determine that only a small portionof the electrical energy stored in electrical energy storage 533 will besold to energy purchasers 504 in order to participate in a frequencyresponse market. Controller 506 may determine that the remainder of theelectrical energy will be used to power chiller subplant 522 to preventa new peak demand from being set.

Central Plant Controller

Referring now to FIG. 6, a block diagram illustrating a central plantcontroller 506 in greater detail is shown, according to an exemplaryembodiment. Central plant controller 506 is shown providing controldecisions to a building management system (BMS) 606. In someembodiments, BMS 606 is the same or similar to BMS 400, as describedwith reference to FIG. 4. The control decisions provided to BMS 606 mayinclude resource purchase amounts for utilities 510, setpoints forgenerator subplants 520, and/or charge/discharge rates for storagesubplants 530.

BMS 606 may be configured to monitor conditions within a controlledbuilding or building zone. For example, BMS 606 may receive input fromvarious sensors (e.g., temperature sensors, humidity sensors, airflowsensors, voltage sensors, etc.) distributed throughout the building andmay report building conditions to central plant controller 506. Buildingconditions may include, for example, a temperature of the building or azone of the building, a power consumption (e.g., electric load) of thebuilding, a state of one or more actuators configured to affect acontrolled state within the building, or other types of informationrelating to the controlled building. BMS 606 may operate subplants520-530 to affect the monitored conditions within the building and toserve the thermal energy loads of the building.

BMS 606 may receive control signals from central plant controller 506specifying on/off states, charge/discharge rates, and/or setpoints forthe subplant equipment. BMS 606 may control the equipment (e.g., viaactuators, power relays, etc.) in accordance with the control signalsprovided by central plant controller 506. For example, BMS 606 mayoperate the equipment using closed loop control to achieve the setpointsspecified by central plant controller 506. In various embodiments, BMS606 may be combined with central plant controller 506 or may be part ofa separate building management system. According to an exemplaryembodiment, BMS 606 is a METASYS® brand building management system, assold by Johnson Controls, Inc.

Central plant controller 506 may monitor the status of the controlledbuilding using information received from BMS 606. Central plantcontroller 506 may be configured to predict the thermal energy loads(e.g., heating loads, cooling loads, etc.) of the building for pluralityof time steps in an optimization period (e.g., using weather forecastsfrom a weather service 604). Central plant controller 506 may alsopredict the revenue generation potential of IBDR programs using anincentive event history (e.g., past clearing prices, mileage ratios,event probabilities, etc.) from incentive programs 602. Central plantcontroller 506 may generate control decisions that optimize the economicvalue of operating central plant system 500 over the duration of theoptimization period subject to constraints on the optimization process(e.g., energy balance constraints, load satisfaction constraints, etc.).The optimization process performed by central plant controller 506 isdescribed in greater detail below.

According to an exemplary embodiment, central plant controller 506 isintegrated within a single computer (e.g., one server, one housing,etc.). In various other exemplary embodiments, central plant controller506 can be distributed across multiple servers or computers (e.g., thatcan exist in distributed locations). In another exemplary embodiment,central plant controller 506 may integrated with a smart buildingmanager that manages multiple building systems and/or combined with BMS606.

Central plant controller 506 is shown to include a communicationsinterface 636 and a processing circuit 607. Communications interface 636may include wired or wireless interfaces (e.g., jacks, antennas,transmitters, receivers, transceivers, wire terminals, etc.) forconducting data communications with various systems, devices, ornetworks. For example, communications interface 636 may include anEthernet card and port for sending and receiving data via anEthernet-based communications network and/or a WiFi transceiver forcommunicating via a wireless communications network. Communicationsinterface 636 may be configured to communicate via local area networksor wide area networks (e.g., the Internet, a building WAN, etc.) and mayuse a variety of communications protocols (e.g., BACnet, IP, LON, etc.).

Communications interface 636 may be a network interface configured tofacilitate electronic data communications between central plantcontroller 506 and various external systems or devices (e.g., BMS 606,subplants 520-530, utilities 510, etc.). For example, central plantcontroller 506 may receive information from BMS 606 indicating one ormore measured states of the controlled building (e.g., temperature,humidity, electric loads, etc.) and one or more states of subplants520-530 (e.g., equipment status, power consumption, equipmentavailability, etc.). Communications interface 636 may receive inputsfrom BMS 606 and/or subplants 520-530 and may provide operatingparameters (e.g., on/off decisions, setpoints, etc.) to subplants520-530 via BMS 606. The operating parameters may cause subplants520-530 to activate, deactivate, or adjust a setpoint for variousdevices thereof.

Still referring to FIG. 6, processing circuit 607 is shown to include aprocessor 608 and memory 610. Processor 608 may be a general purpose orspecific purpose processor, an application specific integrated circuit(ASIC), one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable processing components.Processor 608 may be configured to execute computer code or instructionsstored in memory 610 or received from other computer readable media(e.g., CDROM, network storage, a remote server, etc.).

Memory 610 may include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 610 may include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory610 may include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 610 may be communicably connected toprocessor 608 via processing circuit 607 and may include computer codefor executing (e.g., by processor 608) one or more processes describedherein.

Memory 610 is shown to include a building status monitor 624. Centralplant controller 506 may receive data regarding the overall building orbuilding space to be heated or cooled by the central plant via buildingstatus monitor 624. In an exemplary embodiment, building status monitor624 may include a graphical user interface component configured toprovide graphical user interfaces to a user for selecting buildingrequirements (e.g., overall temperature parameters, selecting schedulesfor the building, selecting different temperature levels for differentbuilding zones, etc.).

Central plant controller 506 may determine on/off configurations andoperating setpoints to satisfy the building requirements received frombuilding status monitor 624. In some embodiments, building statusmonitor 624 receives, collects, stores, and/or transmits cooling loadrequirements, building temperature setpoints, occupancy data, weatherdata, energy data, schedule data, and other building parameters. In someembodiments, building status monitor 624 stores data regarding energycosts, such as pricing information available from utilities 510 (energycharge, demand charge, etc.).

Still referring to FIG. 6, memory 610 is shown to include a load/ratepredictor 622. Load/rate predictor 622 may be configured to predict thethermal energy loads (

_(k)) of the building or campus for each time step k (e.g., k=1 . . . n)of an optimization period. Load/rate predictor 622 is shown receivingweather forecasts from a weather service 604. In some embodiments,load/rate predictor 622 predicts the thermal energy loads

_(k) as a function of the weather forecasts. In some embodiments,load/rate predictor 622 uses feedback from BMS 606 to predict loads

_(k). Feedback from BMS 606 may include various types of sensory inputs(e.g., temperature, flow, humidity, enthalpy, etc.) or other datarelating to the controlled building (e.g., inputs from a HVAC system, alighting control system, a security system, a water system, etc.).

In some embodiments, load/rate predictor 622 receives a measuredelectric load and/or previous measured load data from BMS 606 (e.g., viabuilding status monitor 624). Load/rate predictor 622 may predict loads

_(k) as a function of a given weather forecast ({circumflex over(ϕ)}_(w)), a day type (day), the time of day (t), and previous measuredload data (Y_(k-1)). Such a relationship is expressed in the followingequation:

${\hat{\ell}}_{k} = {f\left( {{\hat{\phi}}_{w},{day},{t❘Y_{k - 1}}} \right)}$

In some embodiments, load/rate predictor 622 uses a deterministic plusstochastic model trained from historical load data to predict loads

_(k). Load/rate predictor 622 may use any of a variety of predictionmethods to predict loads

_(k) (e.g., linear regression for the deterministic portion and an ARmodel for the stochastic portion). Load/rate predictor 622 may predictone or more different types of loads for the building or campus. Forexample, load/rate predictor 622 may predict a hot water load

_(Hot,k) and a cold water load

_(Cold,k) for each time step k within the prediction window. In someembodiments, load/rate predictor 622 makes load/rate predictions usingthe techniques described in U.S. patent application Ser. No. 14/717,593,titled “Building Management System for Forecasting Time Series Values ofBuilding Variables” and filed May 20, 2015, the entire disclosure ofwhich is incorporated by reference herein.

Load/rate predictor 622 is shown receiving utility rates from utilities510. Utility rates may indicate a cost or price per unit of a resource(e.g., electricity, natural gas, water, etc.) provided by utilities 510at each time step k in the prediction window. In some embodiments, theutility rates are time-variable rates. For example, the price ofelectricity may be higher at certain times of day or days of the week(e.g., during high demand periods) and lower at other times of day ordays of the week (e.g., during low demand periods). The utility ratesmay define various time periods and a cost per unit of a resource duringeach time period. Utility rates may be actual rates received fromutilities 510 or predicted utility rates estimated by load/ratepredictor 622.

In some embodiments, the utility rates include demand charges for one ormore resources provided by utilities 510. A demand charge may define aseparate cost imposed by utilities 510 based on the maximum usage of aparticular resource (e.g., maximum energy consumption) during a demandcharge period. The utility rates may define various demand chargeperiods and one or more demand charges associated with each demandcharge period. In some instances, demand charge periods may overlappartially or completely with each other and/or with the predictionwindow. Advantageously, demand response optimizer 630 may be configuredto account for demand charges in the high level optimization processperformed by high level optimizer 632. Utilities 510 may be defined bytime-variable (e.g., hourly) prices, a maximum service level (e.g., amaximum rate of consumption allowed by the physical infrastructure or bycontract) and, in the case of electricity, a demand charge or a chargefor the peak rate of consumption within a certain period. Load/ratepredictor 622 may store the predicted loads

_(k) and the utility rates in memory 610 and/or provide the predictedloads

_(k) and the utility rates to demand response optimizer 630.

Still referring to FIG. 6, memory 610 is shown to include an incentiveestimator 620. Incentive estimator 620 may be configured to estimate therevenue generation potential of participating in various incentive-baseddemand response (IBDR) programs. In some embodiments, incentiveestimator 620 receives an incentive event history from incentiveprograms 602. The incentive event history may include a history of pastIBDR events from incentive programs 602. An IBDR event may include aninvitation from incentive programs 602 to participate in an IBDR programin exchange for a monetary incentive. The incentive event history mayindicate the times at which the past IBDR events occurred and attributesdescribing the IBDR events (e.g., clearing prices, mileage ratios,participation requirements, etc.). Incentive estimator 620 may use theincentive event history to estimate IBDR event probabilities during theoptimization period.

Incentive estimator 620 is shown providing incentive predictions todemand response optimizer 630. The incentive predictions may include theestimated IBDR probabilities, estimated participation requirements, anestimated amount of revenue from participating in the estimated IBDRevents, and/or any other attributes of the predicted IBDR events. Demandresponse optimizer 630 may use the incentive predictions along with thepredicted loads

_(k) and utility rates from load/rate predictor 622 to determine anoptimal set of control decisions for each time step within theoptimization period.

Still referring to FIG. 6, memory 610 is shown to include an demandresponse optimizer 630. Demand response optimizer 630 may perform acascaded optimization process to optimize the performance of centralplant system 500. For example, demand response optimizer 630 is shown toinclude a high level optimizer 632 and a low level optimizer 634. Highlevel optimizer 632 may control an outer (e.g., subplant level) loop ofthe cascaded optimization. High level optimizer 632 may determine anoptimal set of control decisions for each time step in the predictionwindow in order to optimize (e.g., maximize) the value of operatingcentral plant system 500. Control decisions made by high level optimizermay include, for example, load setpoints for each of generator subplants520, charge/discharge rates for each of storage subplants 530, resourcepurchase amounts for each type of resource purchased from utilities 510,and/or an amount of each resource sold to energy purchasers 504. Inother words, the control decisions may define resource allocation ateach time step. The control decisions made by high level optimizer 632are based on the statistical estimates of incentive event probabilitiesand revenue generation potential for various IBDR events as well as theload and rate predictions.

Low level optimizer 634 may control an inner (e.g., equipment level)loop of the cascaded optimization. Low level optimizer 634 may determinehow to best run each subplant at the load setpoint determined by highlevel optimizer 632. For example, low level optimizer 634 may determineon/off states and/or operating setpoints for various devices of thesubplant equipment in order to optimize (e.g., minimize) the energyconsumption of each subplant while meeting the resource allocationsetpoint for the subplant. In some embodiments, low level optimizer 634receives actual incentive events from incentive programs 602. Low leveloptimizer 634 may determine whether to participate in the incentiveevents based on the resource allocation set by high level optimizer 632.For example, if insufficient resources have been allocated to aparticular IBDR program by high level optimizer 632 or if the allocatedresources have already been used, low level optimizer 634 may determinethat central plant system 500 will not participate in the IBDR programand may ignore the IBDR event. However, if the required resources havebeen allocated to the IBDR program and are available in storagesubplants 530, low level optimizer 634 may determine that system 500will participate in the IBDR program in response to the IBDR event. Thecascaded optimization process is described in greater detail withreference to FIG. 7.

Still referring to FIG. 6, memory 610 is shown to include a subplantcontrol module 628. Subplant control module 628 may store historicaldata regarding past operating statuses, past operating setpoints, andinstructions for calculating and/or implementing control parameters forsubplants 520-530. Subplant control module 628 may also receive, store,and/or transmit data regarding the conditions of individual devices ofthe subplant equipment, such as operating efficiency, equipmentdegradation, a date since last service, a lifespan parameter, acondition grade, or other device-specific data. Subplant control module628 may receive data from subplants 520-530 and/or BMS 606 viacommunications interface 636. Subplant control module 628 may alsoreceive and store on/off statuses and operating setpoints from low leveloptimizer 634.

Data and processing results from demand response optimizer 630, subplantcontrol module 628, or other modules of central plant controller 506 maybe accessed by (or pushed to) monitoring and reporting applications 626.Monitoring and reporting applications 626 may be configured to generatereal time “system health” dashboards that can be viewed and navigated bya user (e.g., a central plant engineer). For example, monitoring andreporting applications 626 may include a web-based monitoringapplication with several graphical user interface (GUI) elements (e.g.,widgets, dashboard controls, windows, etc.) for displaying keyperformance indicators (KPI) or other information to users of a GUI. Inaddition, the GUI elements may summarize relative energy use andintensity across central plants in different buildings (real ormodeled), different campuses, or the like. Other GUI elements or reportsmay be generated and shown based on available data that allow users toassess performance across one or more central plants from one screen.The user interface or report (or underlying data engine) may beconfigured to aggregate and categorize operating conditions by building,building type, equipment type, and the like. The GUI elements mayinclude charts or histograms that allow the user to visually analyze theoperating parameters and power consumption for the devices of thecentral plant.

Still referring to FIG. 6, central plant controller 506 may include oneor more GUI servers, web services 612, or GUI engines 614 to supportmonitoring and reporting applications 626. In various embodiments,applications 626, web services 612, and GUI engine 614 may be providedas separate components outside of central plant controller 506 (e.g., aspart of a smart building manager). Central plant controller 506 may beconfigured to maintain detailed historical databases (e.g., relationaldatabases, XML, databases, etc.) of relevant data and includes computercode modules that continuously, frequently, or infrequently query,aggregate, transform, search, or otherwise process the data maintainedin the detailed databases. Central plant controller 506 may beconfigured to provide the results of any such processing to otherdatabases, tables, XML files, or other data structures for furtherquerying, calculation, or access by, for example, external monitoringand reporting applications.

Central plant controller 506 is shown to include configuration tools616. Configuration tools 616 can allow a user to define (e.g., viagraphical user interfaces, via prompt-driven “wizards,” etc.) howcentral plant controller 506 should react to changing conditions in thecentral plant subsystems. In an exemplary embodiment, configurationtools 616 allow a user to build and store condition-response scenariosthat can cross multiple central plant devices, multiple buildingsystems, and multiple enterprise control applications (e.g., work ordermanagement system applications, entity resource planning applications,etc.). For example, configuration tools 616 can provide the user withthe ability to combine data (e.g., from subsystems, from eventhistories) using a variety of conditional logic. In varying exemplaryembodiments, the conditional logic can range from simple logicaloperators between conditions (e.g., AND, OR, XOR, etc.) to pseudo-codeconstructs or complex programming language functions (allowing for morecomplex interactions, conditional statements, loops, etc.).Configuration tools 616 can present user interfaces for building suchconditional logic. The user interfaces may allow users to definepolicies and responses graphically. In some embodiments, the userinterfaces may allow a user to select a pre-stored or pre-constructedpolicy and adapt it or enable it for use with their system.

Cascaded Central Plant Optimization

Referring now to FIG. 7, a block diagram illustrating a portion ofcentral plant system 500 in greater detail is shown, according to anexemplary embodiment. FIG. 7 illustrates the cascaded optimizationprocess performed by demand response optimizer 630 to optimize theperformance of central plant system 500. In the cascaded optimizationprocess, high level optimizer 632 performs a subplant level optimizationthat determines an optimal allocation of resources for each time step inthe optimization period in order to optimize the value of operatingcentral plant system 500. Low level optimizer 634 performs an equipmentlevel optimization that determines how to best run each subplant basedon the resource allocations determined by high level optimizer 632. Forexample, low level optimizer 634 may determine on/off states and/oroperating setpoints for various devices of the subplant equipment inorder to optimize the energy consumption of each subplant while meetingthe thermal energy load setpoint for the subplant.

One advantage of the cascaded optimization process performed by demandresponse optimizer 630 is the optimal use of computational time. Forexample, the subplant level optimization performed by high leveloptimizer 632 may use a relatively long time horizon due to theoperation of the thermal energy storage. However, the equipment leveloptimization performed by low level optimizer 634 may use a much shortertime horizon or no time horizon at all since the low level systemdynamics are relatively fast (compared to the dynamics of the thermalenergy storage) and the low level control of the subplant equipment maybe handled by BMS 606. Such an optimal use of computational time makesit possible for demand response optimizer 630 to perform the centralplant optimization in a short amount of time, allowing for real-timepredictive control. For example, the short computational time enablesdemand response optimizer 630 to be implemented in a real-time planningtool with interactive feedback.

Another advantage of the cascaded optimization performed by demandresponse optimizer 630 is that the central plant optimization problemcan be split into two cascaded subproblems. The cascaded configurationprovides a layer of abstraction that allows high level optimizer 632 todistribute and allocate resources without requiring high level optimizer632 to know or use any details regarding the particular equipmentconfiguration within each subplant. The interconnections between thesubplant equipment within each subplant may be hidden from high leveloptimizer 632 and handled by low level optimizer 634. For purposes ofthe subplant level optimization performed by high level optimizer 632,each subplant may be completely defined by one or more subplant curves.

Still referring to FIG. 7, low level optimizer 634 may generate andprovide subplant curves to high level optimizer 632. Subplant curves mayindicate the rate of resource consumption by each of subplants 520-530(e.g., electricity use measured in kW, water use measured in L/s, etc.)as a function of the subplant's resource production (i.e., the subplantload). Exemplary subplant curves are shown and described in greaterdetail with reference to FIGS. 9A-12. In some embodiments, low leveloptimizer 634 generates subplant curves based on equipment models 618(e.g., by combining equipment models 618 for individual devices into anaggregate curve for the subplant). Low level optimizer 634 may generatesubplant curves by running the low level optimization process forseveral different loads and weather conditions to generate multiple datapoints. Low level optimizer 634 may fit a curve to the data points togenerate a subplant curves. In other embodiments, low level optimizer634 provides the data points to high level optimizer 632 and high leveloptimizer 632 generates the subplant curves using the data points.

High level optimizer 632 may receive the load and rate predictions fromload/rate predictor 622, the incentive predictions from incentiveestimator 620, and the subplant curves from low level optimizer 634. Theload predictions may be based on weather forecasts from weather service604 and/or information from BMS 606 (e.g., a current electric load ofthe building, measurements from the building, a history of previousloads, a setpoint trajectory, etc.). The utility rate predictions may bebased on utility rates received from utilities 510 and/or utility pricesfrom another data source. The incentive predictions may be estimates ofIBDR event probabilities and their potential for revenue generation andmay be based on a history IBDR events received from incentive programs602.

High level optimizer 632 may determine an optimal resource allocationfor subplants 520-530 (e.g., a subplant load for each subplant) for eachtime step the optimization period and may provide the allocation ofresources as setpoints to low level optimizer 634. Resource allocationsmay include an amount of each input resource and each output resourceconsumed or produced by each of generator subplants 520 at each timestep. Resource allocations may also include an amount of each resourcecharged or discharged from storage subplants 530, an amount of eachresource purchased from utilities 510, and an amount of each resourcesold to energy purchasers 504 for each time step in the optimizationperiod. In some embodiments, high level optimizer 632 determines theresource allocation by maximizing the total operating value of centralplant system 500 over the optimization period. For example, high leveloptimizer 632 may determine a set of control decisions that maximizes avalue function. The value function may include IBDR revenue, resourcepurchase costs, and costs of equipment degradation resulting from thecontrol decisions.

In some instances, the optimal resource allocation may include usingstorage subplants 530 to store resources during a first time step foruse during a later time step. Resource storage may advantageously allowenergy and other types of resources to be produced and stored during afirst time period when energy prices are relatively low and subsequentlyretrieved and used during a second time period when energy proves arerelatively high. The high level optimization may be different from thelow level optimization in that the high level optimization has a longertime constant due to the storage provided by subplants 530.

The high level optimization may be described by the following equation:

$\theta_{HL}^{*} = {\arg{\max\limits_{\theta_{HL}}{J_{HL}\left( \theta_{HL} \right)}}}$

where θ_(HL)* contains the optimal high level decisions (e.g., theoptimal resource allocation) for the entire optimization period andJ_(HL) is the high level value function. To find the optimal high leveldecisions θ_(HL)*, high level optimizer 632 may maximize the high levelcost function J_(HL). The high level cost function J_(HL) may includethe revenue generated by participating in IBDR programs, the cost ofresources purchased from utilities 510, and the cost of equipmentdegradation over the duration of the optimization period. In someembodiments, the high level cost function J_(HL) is described using thefollowing equation:

J_(HL) = ∫_(t)^(t + h)($ IBDR − $ PBDR − $ BL − $ Penalties)dt

where $IBDR is the revenue generated from participating in IBDRprograms, $PBDR is the cost of resources purchased from utilities 510,$BL is the cost of losses in battery capacity, and $Penalties is thecost of operating the subplant equipment (e.g., equipment degradationdue to start/stop commands). Each of these terms is described in greaterdetail with reference to FIG. 8.

The decision vector θ_(HL) may be subject to several constraints. Forexample, the constraints may require that each of generator subplants520 not operate at more than its total capacity and that the inputresources and output resources of each generator subplant 520 arerelated as defined by the subplant curves. The constraints may requirethat storage subplants 530 not charge or discharge too quickly and mayconstrain the amount of a resource stored in each of subplants 530between zero and the maximum storage capacity of the subplant. Theconstraints may also require that resource demand for the building orcampus is met. These restrictions lead to both equality and inequalityconstraints on the high level optimization problem, as described ingreater detail with reference to FIG. 8.

Still referring to FIG. 7, low level optimizer 634 may use the resourceallocations determined by high level optimizer 632 to determine optimallow level decisions θ_(LL)* (e.g. binary on/off decisions, flowsetpoints, temperature setpoints, etc.) for the subplant equipment. Thelow level optimization process may be performed for each of subplants520-530. Low level optimizer 634 may be responsible for determiningwhich devices of each subplant to use and/or the operating setpoints forsuch devices that will achieve the resource allocation setpoint whileminimizing energy consumption.

The low level optimization may be described using the followingequation:

$\theta_{LL}^{*} = {\arg{\min\limits_{\theta_{LL}}{J_{LL}\left( \theta_{LL} \right)}}}$

where θ_(LL)* contains the optimal low level decisions and J_(LL) is thelow level cost function. To find the optimal low level decisionsθ_(LL)*, low level optimizer 634 may minimize the low level costfunction J_(LL). The low level cost function J_(LL) may represent thetotal energy consumption for all of the equipment in the applicablesubplant. The low level cost function J_(LL) may be described using thefollowing equation:

${J_{LL}\left( \theta_{LL} \right)} = {\sum\limits_{j = 1}^{N}{t_{s} \cdot b_{j} \cdot {u_{j}\left( \theta_{LL} \right)}}}$

where N is the number of devices in the subplant, t_(s) is the durationof a time step, b_(j) is a binary on/off decision (e.g., 0=off, 1=on),and u_(j) is the energy used by device j as a function of the setpointθ_(LL). Each device may have continuous variables which can be changedto determine the lowest possible energy consumption for the overallinput conditions.

Low level optimizer 634 may minimize the low level cost function J_(LL)subject to inequality constraints based on the capacities of subplantequipment and equality constraints based on energy and mass balances. Insome embodiments, the optimal low level decisions θ_(LL)* areconstrained by switching constraints defining a short horizon formaintaining a device in an on or off state after a binary on/off switch.The switching constraints may prevent devices from being rapidly cycledon and off. In some embodiments, low level optimizer 634 performs theequipment level optimization without considering system dynamics. Theoptimization process may be slow enough to safely assume that theequipment control has reached its steady-state. Thus, low leveloptimizer 634 may determine the optimal low level decisions θ_(LL)* atan instance of time rather than over a long horizon.

Low level optimizer 634 may determine optimum operating statuses (e.g.,on or off) for a plurality of devices of the subplant equipment.According to an exemplary embodiment, the on/off combinations may bedetermined using binary optimization and quadratic compensation. Binaryoptimization may minimize a cost function representing the powerconsumption of devices in the applicable subplant. In some embodiments,non-exhaustive (i.e., not all potential combinations of devices areconsidered) binary optimization is used. Quadratic compensation may beused in considering devices whose power consumption is quadratic (andnot linear). Low level optimizer 634 may also determine optimumoperating setpoints for equipment using nonlinear optimization.Nonlinear optimization may identify operating setpoints that furtherminimize the low level cost function J_(LL). Low level optimizer 634 mayprovide the on/off decisions and setpoints to building management system606 for use in controlling the central plant equipment.

In some embodiments, the low level optimization performed by low leveloptimizer 634 is the same or similar to the low level optimizationprocess described in U.S. patent application Ser. No. 14/634,615 titled“Low Level Central Plant Optimization” and filed Feb. 27, 2015. Theentire disclosure of U.S. patent application Ser. No. 14/634,615 isincorporated by reference herein.

High Level Optimization

Referring now to FIG. 8, a block diagram illustrating high leveloptimizer 632 in greater detail is shown, according to an exemplaryembodiment. High level optimizer 632 may receive load and ratepredictions from load/rate predictor 622, incentive predictions fromincentive estimator 620, and subplant curves from low level optimizer634. High level optimizer 632 may determine an optimal resourceallocation across central plant system 500 as a function of the load andrate predictions, the incentive predictions, and the subplant curves.The optimal resource allocation may include an amount of each resourcepurchased from utilities 510, an amount of each input and outputresource of generator subplants 520, an amount of each resource storedor withdrawn from storage subplants 530, and/or an amount of eachresource sold to energy purchasers 504. In some embodiments, the optimalresource allocation maximizes the economic value of operating centralplant system 500 while satisfying the predicted loads for the buildingor campus. High level optimizer 632 may output the optimal resourceallocation to low level optimizer 634.

Optimization Framework

High level optimizer 632 is shown to include an optimization frameworkmodule 802. Optimization framework module 802 may be configured toselect and/or establish an optimization framework for use in determiningthe optimal resource allocation. In some embodiments, optimizationframework module 802 uses linear programming as the optimizationframework. A linear programming problem has the following form:

${{\underset{x}{\arg\min}c^{T}x};{{{subject}\mspace{14mu}{to}\mspace{14mu}{Ax}} \leq b}},{{Hx} = g}$

where c is a cost vector, x is a decision matrix, A and b are a matrixand vector (respectively) which describe inequality constraints on theoptimization problem, and H and g are a matrix and vector (respectively)which describe equality constraints on the optimization problem. Revenuegenerated by IBDR programs may be expressed as negative costs in thecost vector c.

The following paragraphs describe an exemplary linear optimizationframework that may be used by high level optimizer 632 to determine theoptimal resource allocation. Advantageously, the linear programmingframework described herein allows high level optimizer 632 to determinethe resource allocation for a long optimization period in a very shorttimeframe complete with IBDR incentives, PBDR costs, and equipmentdegradation costs/penalties. However, the linear optimization frameworkis merely one example of an optimization framework that can be used byhigh level optimizer 632 and should not be regarded as limiting. Itshould be understood that in other embodiments, high level optimizer 632may use any of a variety of other optimization frameworks and/oroptimization techniques (e.g., quadratic programming, linear-fractionalprogramming, nonlinear programming, combinatorial algorithms, etc.) tocalculate the optimal resource allocation.

Linear Program

Still referring to FIG. 8, high level optimizer 632 is shown to includea linear program module 804. Linear program module 804 may be configuredto formulate and solve a linear optimization problem to calculate theoptimal resource allocation. For example, linear program module 804 maydetermine and set values for the cost vector c, the A matrix and the bvector which describe the inequality constraints, and the H matrix andthe g vector which describe the equality constraints. Linear programmodule 804 may determine an optimal decision matrix x* that minimizesthe cost function c^(T)x. The optimal decision matrix x* may correspondto the optimal decisions θ_(HL)* (for each time step k within anoptimization period) that maximize the high level cost function J_(HL),as described with reference to FIG. 7.

Linear program module 804 may be configured to generate decisionvariables (i.e. variables in the decision matrix x) for each of theplant assets across which resources are allocated. For a central plantthat includes chillers, heat recovery chillers, hot water generators,thermal energy storage, and electrical energy storage, the plant assetsacross which the resources are to be allocated may include a chillersubplant 522, a heat recovery chiller subplant 523, a heater subplant521 a hot thermal energy storage subplant 531, a cold thermal energystorage subplant 532, and an electrical energy storage subplant 533. Forother central plants, the plant assets across which the resources are tobe allocated may include fewer or additional subplants, depending on theparticular configuration and components of the central plant.

For each subplant across which resources are allocated, linear programmodule 804 may generate decision variables representing an amount ofeach input resource to the subplant and each output resource from thesubplant for each time step k in the optimization period. For example, achiller subplant may consume two different types of input resources(e.g., electricity and water) and may produce one output resource (e.g.,chilled water). For a generator subplant with two input resources andone output resource, linear program module 804 may add the followingvariables to the decision matrix x:

$x = \begin{bmatrix}\ldots & x_{{sp}_{n},{i\; n_{1}},{1\;\ldots\; h}} & x_{{sp}_{n},{i\; n_{2}},{1\;\ldots\; h}} & x_{{sp}_{n},{out}_{1},{1\;\ldots\; h}} & \ldots\end{bmatrix}^{T}$

where x_(sp) _(n) _(,in) ₁ _(,1 . . . h), x_(sp) _(n) _(,in) ₂_(,1 . . . h), and x_(sp) _(n) _(,out) ₁ _(,1 . . . h) are h-dimensionalvectors representing amounts of the first input resource in₁, the secondinput resource in₂, and the first output resource out₁ allocated to thenth subplant sp_(n) for each of the h time steps within the optimizationperiod. Linear program module 804 may repeat this process for each ofgenerator subplants 520, adding one or more input resource decisionvariables and one or more output resource decision variables for eachgenerator subplant.

Decision variables representing the input resources and output resourcesof a subplant may have no direct costs associated with them. Therefore,linear program module 804 may add a zero cost element to the cost vectorc for each decision variable representing an input resource or outputresource. For example, for a generator subplant with two input resourcesand one output resource, linear program module 804 may add the followingelements to the cost vector c:

$c = \begin{bmatrix}\ldots & 0 & 0 & 0 & \ldots\end{bmatrix}^{T}$

For each type of resource allocated, linear program module 804 maygenerate a decision variable representing an amount of the resourcestored or discharged from storage subplants 530 for each time step k inthe optimization period. In some embodiments, each storage subplantstores and/or discharges a different type of resource. For example, coldTES subplant 532 may store and discharge cold thermal energy (e.g., coldwater), whereas electrical storage subplant 533 may store and dischargeelectrical energy. In other embodiments, multiple storage subplants 530may store/discharge the same type of resource. In various embodiments,linear program module 804 may generate a single storage/dischargevariable for each type of resource or a storage/discharge variable foreach of subplants 530, even if multiple subplants 530 store/dischargethe same type of resource.

Linear program module 804 may also generate a decision variablerepresenting an amount of overproduction (if any) and a decisionvariable representing an amount of underproduction (if any) for eachtype of resource. Underproduction may occur when the amount of aresource provided to the building or campus is less than the demand forthe resource. Conversely, overproduction may occur when the amount of aresource provided to the building or campus exceeds the demand for theresource. For each type of resource, linear program module 804 may addthe following variables to the decision matrix x:

$x = \begin{bmatrix}\begin{matrix}\ldots & x_{{resource}_{p},{under},{1\;\ldots\; h}} & x_{{resource}_{p},{over},{1\;\ldots\; h}} & x_{{resource}_{p},{storage},{1\;\ldots\; h}}\end{matrix} & \ldots\end{bmatrix}^{T}$

where x_(resource) _(p) _(,under,1 . . . h) and x_(resource) _(p)_(,over,1 . . . h) are h-dimensional vectors representing amounts ofunderproduction and overproduction of the pth resource for each of the htime steps within the optimization period. x_(resource) _(p)_(,storage,1 . . . h) is a h-dimensional vector representing an amountof the pth resource drawn from storage subplants 530 for each of the htime steps. The storage draw may be positive if the resource is beingwithdrawn from storage subplants 530 or negative if the resource isbeing stored in storage subplants 530.

Decision variables representing the storage draw from subplants 530 mayhave no direct costs associated with them. Therefore, linear programmodule 804 may add a zero cost element to the cost vector c for eachdecision variable representing a storage draw. However, linear programmodule 804 may assign a high cost to decision variables representingoverproduction and/or underproduction. For example, for a particularresource p, linear program module 804 may add the following elements tothe cost vector c:

$c = \begin{bmatrix}\ldots & M & M & 0 & \ldots\end{bmatrix}^{T}$

where M is the cost assigned to overproduction and underproduction ofresource p and 0 is the cost assigned to the storage draw of resource p.Advantageously, assigning a high cost to overproduction andunderproduction ensures that high level optimizer 632 does not select aset of decision variables that results in overproduction and/orunderproduction unless the central plant is running at full capacity.

For each source from which resources can be purchased (e.g., utilities510), linear program module 804 may generate a decision variablerepresenting an amount of each resource purchased for each time step kin the optimization period. In some embodiments, each resource sourceprovides a different type of resource. For example, electric utility 511may provide electricity, whereas natural gas utility 513 may providenatural gas. For each resource source, linear program module 804 may addthe following decision variable to the decision matrix x:

$x = \begin{bmatrix}\ldots & x_{{resource_{p}},{source}_{m},{1\;\ldots\; h}} & \ldots\end{bmatrix}^{T}$

where x_(resource) _(p) _(,source) _(m) is the amount of resource ppurchased from source m for each of the h time steps in the optimizationperiod. Linear program module 804 may repeat this process for each ofresource source, adding a resource purchase variable for each type ofresource purchased.

Decision variables representing resource purchases may have a directcost associated with them. Therefore, linear program module 804 may adda non-zero cost to the cost vector c for each decision variablerepresenting a resource purchase. For example, linear program module 804may add the following element to the cost vector c:

$c = \begin{bmatrix}\ldots & c_{{{resourc}e_{p}},{source}_{m},{1\;\ldots\; h}} & \ldots\end{bmatrix}^{T}$

where c_(resource) _(p) _(,source) _(m) _(,1 . . . h) is the cost ofpurchasing resource p from source m at each of the h time steps in theoptimization period.

In some embodiments, linear program module 804 uses the load and ratepredictions to formulate the linear program. For example, linear programmodule 804 may use the load predictions to determine a demand for eachtype of resource. The demand for each resource may be used to determinethe amount of overproduction and/or underproduction. Linear programmodule 804 may use the rate predictions to determine values for theelements in cost vector c associated with resource purchases.

In some embodiments, linear program module 804 formulates the linearprogram for the simple case in which only resource purchase costs andover/underproduction are considered. Linear program module 804 may useinputs from inequality constraints module 806, equality constraintsmodule 808, unmet loads module 810, ground loop module 812, heatexchanger module 814, demand charge module 816, tank forced full module818, penalty function module 820, incentive program module 822, batterycapacity loss module 824, and/or subplant curves module 830 to determineand set values for the various matrices and vectors in the linearprogram. Modules 806-830 may modify the cost vector c, the A matrix, theb vector, the H matrix, and/or the g vector to provide additionalenhancements and/or functionality to the linear program. The inputsprovided by modules 806-830 are described in greater detail below.

Linear program module 804 may use any of a variety of linearoptimization techniques to solve the linear optimization problem. Forexample, linear program module 804 may use basis exchange algorithms(e.g., simplex, crisscross, etc.), interior point algorithms (e.g.,ellipsoid, projective, path-following, etc.), covering and packingalgorithms, integer programming algorithms (e.g., cutting-plant, branchand bound, branch and cut, branch and price, etc.), or any other type oflinear optimization algorithm or technique to solve the linear programsubject to the optimization constraints. For embodiments in whichnonlinear optimization is used, linear program module 804 may use any ofa variety of nonlinear optimization techniques to solve the nonlinearoptimization problem.

Inequality Constraints

Still referring to FIG. 8, high level optimizer 632 is shown to includean inequality constraints module 806. Inequality constraints module 806may formulate or define one or more inequality constraints on theoptimization problem solved by linear program module 804. In someinstances, inequality constraints module 806 defines inequalityconstraints on the decision variables corresponding to the loads ongenerator subplants 520 for each time step k within optimization period.For example, each of subplants 520 may have two capacity constraintsgiven by the following equations:

x_(sp_(n)) ≤ x_(sp_(n), max₁)  ∀k ∈ horizon x_(sp_(n)) ≥ 0  ∀k ∈ horizon

where x_(sp) _(n) is the output of the nth subplant during time step kand x_(sp) _(n) _(,max) ₁ is the maximum capacity of the nth subplantwith respect to a first output resource. The first capacity constraintrequires the output x_(sp) _(n) of the subplant to be less than or equalto the maximum capacity x_(sp) _(n) _(,max) ₁ of the subplant for eachtime step k within the optimization period. The second capacityconstraint requires the output x_(sp) _(n) of the subplant to be greaterthan or equal to zero for each time step k within the optimizationperiod.

As previously described, the input and output resources for eachgenerator subplant 520 may be defined by the decision variables:

$x = \begin{bmatrix}\ldots & x_{{sp}_{n},{in}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{sp}_{n},{in}_{2},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{sp}_{n},{out}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \ldots\end{bmatrix}^{T}$

The inequality constraints for each subplant 520 can be placed in theform Ax≤b by defining the A matrix and the b vector as follows:

${A = \begin{bmatrix}\ldots & 0 & 0 & I_{h} & \ldots \\\ldots & 0 & 0 & {- I_{h}} & \ldots\end{bmatrix}},\mspace{14mu}{b = \begin{bmatrix}\vdots \\x_{{sp_{n}},\max_{1}} \\0_{h} \\\vdots\end{bmatrix}}$

where I_(h) represents either an h by h identity matrix or an h by 1ones vector, 0_(h) represents either an h by h zero matrix or an h by 1zero vector, and x_(sp) _(n) _(,max) ₁ is the maximum capacity ofsubplant n. Inequality constraints module 806 may formulate similarinequality constraints for each of generator subplants 520.

Inequality constraints module 806 may formulate or define inequalityconstraints on the decision variables representing the draw from storagesubplants 530 for each time step k within the optimization period. Forexample, each of subplants 530 may have two capacity constraints givenby the following equations:

x_(storage_(p)) ≤ x_(discharge_(p, max ))  ∀k ∈ horizon − x_(storage_(p)) ≤ x_(charge_(p, max ))  ∀k ∈ horizon

where x_(storage) _(p) is the rate at which the pth storage subplant isbeing discharged at time step k, x_(discharge) _(p,max) is the maximumdischarge rate of the pth storage subplant, and x_(charge) _(p,max) isthe maximum charge rate of the pth storage subplant. Positive values forx_(storage) _(p) indicate that the storage subplant is discharging andnegative load values for x_(storage) _(p) indicate that the storagesubplant is charging. The first capacity constraint requires thedischarge rate x_(storage) _(p) for each of storage subplants 530 to beless than or equal to the maximum discharge rate x_(discharge) _(p,max)of the subplant for each time step k within the optimization period. Thesecond capacity constraint requires the negative discharge rate−x_(storage) _(p) (i.e., the charge rate) for each of subplants 530 tobe less than or equal to the maximum charge rate x_(charge) _(p,max) ofthe subplant for each time step k within the optimization period. Eachof storage subplants 530 may also have capacity constraints that requirethe amount of the stored resource to be no less than zero and no greaterthan the maximum capacity of the storage.

The inequality constraints for storage subplants 530 can be placed inthe form Ax≤b by defining the A matrix and the b vector as follows:

${A = \begin{bmatrix}\ldots & 0 & 0 & I_{h} & \ldots \\\ldots & 0 & 0 & {- I_{h}} & \ldots \\\ldots & 0 & 0 & {T_{s}\Delta_{h}} & \ldots \\\ldots & 0 & 0 & {{- T_{s}}\Delta_{h}} & \ldots\end{bmatrix}},{b = \begin{bmatrix}\vdots \\x_{dis{charg}e_{p,\max}} \\x_{{charg}e_{p,\max}} \\C_{{storag}e_{p,0}} \\{C_{{storag}e_{p,\max}}C_{{storag}e_{p,0}}} \\\vdots\end{bmatrix}}$

where C_(storage) _(p,0) is the current state of charge of storagesubplant p (e.g., at time step k=0), C_(storage) _(p,max) is the maximumstorage capacity of storage subplant p, T_(s) is the duration of onetime step, and Δ_(h) is a lower diagonal matrix of ones. Inequalityconstraints module 806 may generate similar inequality constraints foreach of storage subplants 530.

Inequality constraints module 806 may generate inequality constraintsthat limit the maximum rate at which resources can be purchased fromutilities 510. As previously described, the decision matrix x mayinclude variables representing the amount of each resource purchasedfrom utilities 510:

$x = \left\lbrack \begin{matrix}\ldots & x_{{resource_{p}},{{sou}rce_{m}},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \ldots\end{matrix}\  \right\rbrack^{T}$

where x_(resource) _(p) _(,source) _(m) is the amount of resource ppurchased from source m for each of the h time steps in the optimizationperiod. Inequality constraints module 806 may generate the followinginequality constraints to limit the purchase amount of resource p to nogreater than the maximum allowable purchase during each time step:

${A = \begin{bmatrix}\ldots & I_{h} & \ldots\end{bmatrix}},{b = \begin{bmatrix}\vdots \\x_{{source}_{m,\max}} \\\vdots\end{bmatrix}}$

where x_(source) _(m,max) is the maximum allowable purchase from sourcem.

Inequality constraints module 806 may implement an electrical demandconstraint for the electric power purchased from utilities 510.Inequality constraints module 806 may require that the electric powerpurchased be less than or equal to a maximum electrical demandP_(elec,max) by defining the A matrix and the b vector as follows:

${A = \begin{bmatrix}\ldots & {x_{elec}I_{h}} & \ldots\end{bmatrix}},{b = \begin{bmatrix}\vdots \\{P_{{elec},\max}I_{h}} \\\vdots\end{bmatrix}}$

where x_(elec) represents the electricity purchased from utilities 510and P_(elec,max) is the maximum electrical demand for the central plantsystem.

Equality Constraints

Still referring to FIG. 8, high level optimizer 632 is shown to includean equality constraints module 808. Equality constraints module 808 mayformulate or define one or more equality constraints on the optimizationproblem solved by linear program module 804. The equality constraintsmay ensure that the predicted resource demand of the building or campusare satisfied for each time step k in the optimization period. Equalityconstraints module 808 may formulate an equality constraint for eachtype of resource (e.g., hot water, cold water, electricity etc.) toensure that the demand for the resource is satisfied. The equalityconstraints may be given by the following equation:

${\sum\limits_{i = 1}^{n_{s}}x_{p,i,k}} = {{\hat{\ell}}_{p,k}\mspace{14mu}{\forall{k \in {horizon}}}}$

where x_(p,i,k) is the resource output of type p (e.g., hot water, coldwater, etc.) by the ith subplant during time step k, n_(s) is the totalnumber of subplants capable of outputting resource p, and

_(p,k) is the predicted demand for resource type p at time step k. Thepredicted resource demand may be received as load predictions fromload/rate predictor 622.

In some embodiments, the predicted resource demands include a predictedhot water thermal energy load

_(Hot,k), a predicted cold water thermal energy load

_(Cold,k,) and a predicted electricity load

_(Elec,k) for each time step k. The predicted hot water thermal energyload

_(Hot,k) may be satisfied by the combination of heater subplant 521,heat recovery chiller subplant 523, and hot TES subplant 532. Thepredicted cold water thermal energy load

_(Cold,k) may be satisfied by the combination of chiller subplant 522,heat recovery chiller subplant 523, and cold TES subplant 532. Thepredicted electricity load

_(Elec,k) may include the electric demand of the building and may besatisfied by the combination of electricity subplant 525, electricutility 511, and electrical energy storage subplant 533. Electricitysold to energy purchasers 504 and electricity consumed by generatorsubplants 520 may add to the predicted electricity load

_(Elec,k).

The equality constraints can be placed in the form Hx=g by defining theH matrix and the g vector as follows:

${H = \begin{bmatrix}I_{h} & {- I_{h}} & 0_{h} & 0_{h} \\I_{h} & {- I_{h}} & 0_{h} & 0_{h} \\I_{h} & {- I_{h}} & I_{h} & {- I_{h}}\end{bmatrix}},{g = \begin{bmatrix}{\overset{\hat{}}{\ell}}_{{Cold},{1\;\ldots\; h}} \\{\overset{\hat{}}{\ell}}_{{Hot},{1\;\ldots\; h}} \\{\overset{\hat{}}{\ell}}_{{Elec},{1\;\ldots\; h}}\end{bmatrix}}$

where

_(Cold,1 . . . h),

_(Hot,1 . . . h), and

_(Elec,1 . . . h) are h-dimensional vectors of predicted cold waterloads, predicted hot water loads, and predicted electricity loads forthe building or campus at each of the h time steps. The first column ofthe H matrix applies to any output of the corresponding resource (i.e.,resource production) from subplants 520-530. The second column of the Hmatrix applies to any input of the corresponding resource (i.e.,consumption consumption) by subplants 520-530. The third column of the Hmatrix applies to any purchase of the corresponding resource fromutilities 510. The fourth column of the H matrix applies to any sale ofthe corresponding resource to energy purchasers 504. For central plantsthat provide one or more additional types of resource, an additional rowmay be added to the H matrix and the g vector to define the equalityconstraints for each additional resource provided by the central plant.

In some embodiments, equality constraints module 808 augments the Hmatrix and the g vector to define relationships between the inputresources and output resources of various subplants. The relationshipsbetween input and output resources may be defined by subplant curves.For example, the subplant curve for chiller subplant 522 may specifythat each unit of cold thermal energy (e.g., kW) produced as an outputresource requires 0.15 kW of electricity and 0.5 gal/hr of water asinput resources. In this example, equality constraints module 808 mayaugment the H matrix and the g vector as follows:

${H = \begin{bmatrix}\cdots & {6.67I_{h}} & 0_{h} & {- I_{h}} \\\cdots & 0_{h} & {2I_{h}} & {- I_{h}}\end{bmatrix}},{g = \begin{bmatrix}0_{h} \\0_{h}\end{bmatrix}}$

The first row indicates that the amount of the output resource (e.g.,cold water) produced is 6.67 times greater than the amount of the firstinput resource (e.g., electricity). In other words, 6.67 times theamount of the first input resource equals the output resource (e.g.,0.15*6.67˜1.0). The second row indicates that the amount of the outputresource (e.g., cold water) produced is 2 times greater than the amountof the second input resource (e.g., water). In other words, 2 times theamount of the second input resource equals the output resource (e.g.,0.5*2˜1.0). Equality constraints based on subplant curves are describedin greater detail below with reference to subplant curves module 830.

Unmet Load Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includean unmet loads module 810. In some instances, the central plantequipment may not have enough capacity or reserve storage to satisfy thepredicted resource demand, regardless of how the resources areallocated. In other words, the high level optimization problem may haveno solution that satisfies all of the inequality and equalityconstraints, even if the applicable subplants are operated at maximumcapacity. Unmet loads module 810 may be configured to modify the highlevel optimization problem to account for this possibility and to allowthe high level optimization to find the solution that results in theminimal amount of unmet loads.

In some embodiments, unmet loads module 810 modifies the decisionvariable matrix x by introducing a slack variable for each type ofresource. The slack variables represent an unsatisfied (e.g., unmet,deferred, etc.) amount of each type of resource. For example, unmetloads module 810 may modify the decision variable matrix x as follows:

$x = \begin{bmatrix}\cdots & x_{{ColdUnmet},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{HotUnmet},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{ElecUnmet},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \cdots\end{bmatrix}^{T}$

where x_(ColdUnmet,1 . . . h), x_(HotUnmet1 . . . h), andx_(ElecUnmet,1 . . . h) are h-dimensional vectors representing a totaldeferred cold thermal energy load, a total deferred hot thermal energyload, and a total deferred electrical load respectively, at each timestep k within the optimization period. In some embodiments, the decisionvariables x_(ColdUnmet,1 . . . h), x_(HotUnmet1 . . . h), andx_(ElecUnmet,1 . . . h) represent total deferred loads that haveaccumulated up to each time step k rather than the incremental deferredload at each time step. The total deferred load may be used because anydeferred load is likely to increase the required load during subsequenttime steps.

Unmet loads module 810 may modify the equality constraints to accountfor any deferred thermal energy loads. The modified equality constraintsmay require that the predicted thermal energy loads are equal to thetotal loads satisfied by subplants 520-530 plus any unsatisfied thermalenergy loads. The modified equality constraints can be placed in theform Hx=g by defining the H matrix and the g vector as follows:

${H = \begin{bmatrix}I_{h} & {- I_{h}} & 0_{h} & 0_{h} & {I_{h} - D_{- 1}} & 0_{h} & 0_{h} \\I_{h} & {- I_{h}} & 0_{h} & 0_{h} & 0_{h} & {I_{h} - D_{- 1}} & 0_{h} \\I_{h} & {- I_{h}} & I_{h} & {- I_{h}} & 0_{h} & 0_{h} & {I_{h} - D_{- 1}}\end{bmatrix}},{g = \begin{bmatrix}{\hat{\ell}}_{{Cold},{1\mspace{14mu}\ldots\mspace{14mu} h}} \\{\hat{\ell}}_{{Hot},{1\mspace{14mu}\ldots\mspace{14mu} h}} \\{\hat{\ell}}_{{Elec},{1\mspace{14mu}\ldots\mspace{14mu} h}}\end{bmatrix}}$

where D⁻¹ is a lower diagonal matrix of ones.

Unmet loads module 810 may modify the cost vector c to associate costvalues with any unmet loads. In some embodiments, unmet loads module 810assigns unmet loads a relatively higher cost compared to the costsassociated with other types of loads in the decision variable matrix x.Assigning a large cost to unmet loads ensures that the optimal solutionto the high level optimization problem uses unmet loads only as a lastresort (i.e., when the optimization has no solution without using unmetloads). Accordingly, linear program module 804 may avoid using unmetloads if any feasible combination of equipment is capable of satisfyingthe predicted thermal energy loads. In some embodiments, unmet loadsmodule 810 assigns a cost value to unmet loads that allows linearprogram module 804 to use unmet loads in the optimal solution even ifthe central plant is capable of satisfying the predicted thermal energyloads. For example, unmet loads module 810 may assign a cost value thatallows linear program module 804 to use unmet loads if the solutionwithout unmet loads would be prohibitively expensive and/or highlyinefficient.

Subplant Curve Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea subplant curves module 830. In the simplest case described withreference to linear program module 804, it was assumed that the resourceconsumption of each subplant is a linear function of the thermal energyload produced by the subplant. However, this assumption may not be truefor some subplant equipment, much less for an entire subplant. Subplantcurves module 830 may be configured to modify the high leveloptimization problem to account for subplants that have a nonlinearrelationship between resource consumption and load production.

Subplant curves module 830 is shown to include a subplant curve updater832, a subplant curves database 834, a subplant curve linearizer 836,and a subplant curves incorporator 838. Subplant curve updater 832 maybe configured to request subplant curves for each of subplants 520-530from low level optimizer 634. Each subplant curve may indicate an amountof resource consumption by a particular subplant (e.g., electricity usemeasured in kW, water use measured in L/s, etc.) as a function of thesubplant load. Exemplary subplant curves are shown and described ingreater detail with reference to FIGS. 9A-12.

In some embodiments, low level optimizer 634 generates the subplantcurves by running the low level optimization process for variouscombinations of subplant loads and weather conditions to generatemultiple data points. Low level optimizer 634 may fit a curve to thedata points to generate the subplant curves and provide the subplantcurves to subplant curve updater 832. In other embodiments, low leveloptimizer 634 provides the data points to subplant curve updater 832 andsubplant curve updater 832 generates the subplant curves using the datapoints. Subplant curve updater 832 may store the subplant curves insubplant curves database 834 for use in the high level optimizationprocess.

In some embodiments, the subplant curves are generated by combiningefficiency curves for individual devices of a subplant. A deviceefficiency curve may indicate the amount of resource consumption by thedevice as a function of load. The device efficiency curves may beprovided by a device manufacturer or generated using experimental data.In some embodiments, the device efficiency curves are based on aninitial efficiency curve provided by a device manufacturer and updatedusing experimental data. The device efficiency curves may be stored inequipment models 618. For some devices, the device efficiency curves mayindicate that resource consumption is a U-shaped function of load.Accordingly, when multiple device efficiency curves are combined into asubplant curve for the entire subplant, the resultant subplant curve maybe a wavy curve as shown in FIG. 10. The waves are caused by a singledevice loading up before it is more efficient to turn on another deviceto satisfy the subplant load.

Subplant curve linearizer 836 may be configured to convert the subplantcurves into convex curves. A convex curve is a curve for which a lineconnecting any two points on the curve is always above or along thecurve (i.e., not below the curve). Convex curves may be advantageous foruse in the high level optimization because they allow for anoptimization process that is less computationally expensive relative toan optimization process that uses non-convex functions. Subplant curvelinearizer 836 may be configured to break the subplant curves intopiecewise linear segments that combine to form a piecewise-definedconvex curve. An unmodified subplant curve 1000 and a linearizedsubplant curve 1100 generated by subplant curve linearizer 836 are shownin FIGS. 10 and 11, respectively. Subplant curve linearizer 836 maystore the linearized subplant curves in subplant curves database 834.

Still referring to FIG. 8, subplant curves module 830 is shown toinclude a subplant curve incorporator 838. Subplant curve incorporator838 may be configured to modify the high level optimization problem toincorporate the subplant curves into the optimization. In someembodiments, subplant curve incorporator 838 modifies the decisionmatrix x to include one or more decision vectors representing theresource consumption of each subplant. In other embodiments, thedecision matrix x is formulated by linear program module 804 to includethe input resources and the output resources of each subplant, as shownin the following equation:

$x = \begin{bmatrix}\cdots & x_{{sp}_{n},{in}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{sp}_{n},{in}_{2},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{sp}_{n},{out}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \cdots\end{bmatrix}^{T}$

Subplant curve incorporator 838 may modify the inequality constraints toensure that the proper amount of each resource is consumed to serve thepredicted thermal energy loads. In some embodiments, subplant curveincorporator 838 formulates inequality constraints that force theresource usage for each resource in the epigraph of the correspondinglinearized subplant curve. For example, chiller subplant 522 may have alinearized subplant curve that indicates the electricity use of chillersubplant 522 (i.e., input resource in₁) as a function of the cold waterproduction of chiller subplant 522 (i.e., output resource out₁). Such alinearized subplant curve 1100 is shown in FIG. 11. The linearizedsubplant curve may include a first line segment connecting point [u₁,Q₁] to point [u₂, Q₂], a second line segment connecting point [u₂, Q₂]to point [u₃, Q₃], and a third line segment connecting point [u₃, Q₃] topoint [u₄, Q₄].

Subplant curve incorporator 838 may formulate an inequality constraintfor each piecewise segment of the subplant curve that constrains thevalue of the decision variable representing chiller electricity use tobe greater than or equal to the amount of electricity use defined by theline segment for the corresponding value of the cold water production.The subplant curve constraints for the electricity use of chillersubplant 522 can be placed in the form Ax≤b by defining the A matrix andthe b vector as follows:

${A = \begin{bmatrix}\cdots & {\left\lbrack {- \left( {u_{2} - u_{1}} \right)} \right\rbrack I_{n}} & \cdots & {\left\lbrack \left( {Q_{2} - Q_{1}} \right) \right\rbrack I_{n}} & 0_{n} & \cdots \\\cdots & {\left\lbrack {- \left( {u_{3} - u_{2}} \right)} \right\rbrack I_{n}} & \cdots & {\left\lbrack \left( {Q_{3} - Q_{2}} \right) \right\rbrack I_{n}} & 0_{n} & \cdots \\\cdots & {\left\lbrack {- \left( {u_{4} - u_{3}} \right)} \right\rbrack I_{n}} & \cdots & {\left\lbrack \left( {Q_{4} - Q_{3}} \right) \right\rbrack I_{n}} & 0_{n} & \cdots\end{bmatrix}},{b = \begin{bmatrix}{{Q_{1}u_{2}} - {Q_{2}u_{1}}} \\{{Q_{2}u_{3}} - {Q_{3}u_{2}}} \\{{Q_{3}u_{4}} - {Q_{4}u_{3}}}\end{bmatrix}}$

Similar inequality constraints can be formulated for other subplantcurves. For example, subplant curve incorporator 838 may generate a setof inequality constraints for the water consumption of chiller subplant522 using the points defining the linearized subplant curve for thewater consumption of chiller subplant 522 as a function of cold waterproduction. In some embodiments, the water consumption of chillersubplant 522 is equal to the cold water production and the linearizedsubplant curve for water consumption includes a single line segmentconnecting point [u₅, Q₅] to point [u₆, Q₆] (as shown in FIG. 9B). Thesubplant curve constraints for the cold water consumption of chillersubplant 522 can be placed in the form Ax≤b by defining the A matrix andthe b vector as follows:

${A = \begin{bmatrix}\ldots & {\left\lbrack {- \left( {u_{6} - u_{5}} \right)} \right\rbrack I_{n}} & \ldots & 0_{n} & {\left\lbrack \left( {Q_{6} - Q_{5}} \right) \right\rbrack I_{n}} & \ldots\end{bmatrix}},{b = \left\lbrack {{Q_{5}u_{6}} - {Q_{6}u_{5}}} \right\rbrack}$

Subplant curve incorporator 838 may repeat this process for eachsubplant curve for chiller subplant 522 and for the other subplants ofthe central plant to define a set of inequality constraints for eachsubplant curve.

The inequality constraints generated by subplant curve incorporator 838ensure that high level optimizer 632 keeps the resource consumptionabove all of the line segments of the corresponding subplant curve. Inmost situations, there is no reason for high level optimizer 632 tochoose a resource consumption value that lies above the correspondingsubplant curve due to the economic cost associated with resourceconsumption. High level optimizer 632 can therefore be expected toselect resource consumption values that lie on the correspondingsubplant curve rather than above it.

The exception to this general rule is heat recovery chiller subplant523. The equality constraints for heat recovery chiller subplant 523provide that heat recovery chiller subplant 523 produces hot water at arate equal to the subplant's cold water production plus the subplant'selectricity use. The inequality constraints generated by subplant curveincorporator 838 for heat recovery chiller subplant 523 allow high leveloptimizer 632 to overuse electricity to make more hot water withoutincreasing the amount of cold water production. This behavior isextremely inefficient and only becomes a realistic possibility when thedemand for hot water is high and cannot be met using more efficienttechniques. However, this is not how heat recovery chiller subplant 523actually operates.

To prevent high level optimizer 632 from overusing electricity, subplantcurve incorporator 838 may check whether the calculated amount ofelectricity use (determined by the optimization algorithm) for heatrecovery chiller subplant 523 is above the corresponding subplant curve.In some embodiments, the check is performed after each iteration of theoptimization algorithm. If the calculated amount of electricity use forheat recovery chiller subplant 523 is above the subplant curve, subplantcurve incorporator 838 may determine that high level optimizer 632 isoverusing electricity. In response to a determination that high leveloptimizer 632 is overusing electricity, subplant curve incorporator 838may constrain the production of heat recovery chiller subplant 523 atits current value and constrain the electricity use of subplant 523 tothe corresponding value on the subplant curve. High level optimizer 632may then rerun the optimization with the new equality constraints.

Ground Loop and Heat Exchanger Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea ground loop module 812 and a heat exchanger module 814. In someembodiments, the central plant includes a heat exchanger configured totransfer heat between a hot water loop and a condenser water loop. Insome embodiments, the central plant includes a ground loop that servesas heat rejection for chiller subplant 522 and/or heat extraction forheat recovery chiller subplant 523. Ground loop module 812 and heatexchanger module 814 may be configured to modify the optimizationproblem to account for heat transfer resulting from operation of theheat exchanger and/or the ground loop.

Ground loop module 812 may incorporate heat rejection to the ground loopinto the optimization problem by changing the amount of electricity andwater usage by chiller subplant 522. For example, for loadings up to theheat rejection capacity of the ground loop, chiller subplant 522 may usean additional amount of electricity to run the ground loop pumps. Theadditional electricity usage may be constant or may vary per unit offlow through the ground loop. The amount of water production of chillersubplant 522 may be constant regardless of whether the ground loop isused.

Ground loop module 812 and heat exchanger module 814 may incorporateheat extraction from the ground loop and heat transfer between the hotwater loop and the condenser water loop into the optimization problem ina similar manner. For example, ground loop module 812 and heat exchangermodule 814 may use heat extraction from the ground loop and heattransfer between the water loops to modify the load seen by the centralplant equipment. Ground loop module 812 may use the ground loop tocreate what appears as a false building load to the equipment, therebyallowing heat recovery chiller subplant 523 to operate as heat pumpswhen the building load does not add enough heat to the system. Thisoutcome may be optimal when the ratio between electricity prices and gasprices is low such that it is less expensive to operate the ground loopand the heat exchanger using electricity than it would be to use naturalgas to generate heat in heater subplant 521.

Heat exchanger module 814 may use the heat exchanger to create whatappears to be a false hot water building load, thereby allowing heatrecovery chiller subplant 523 to operate as conventional chillers. Theexcess heat from heat recovery chiller subplant 523 may be transferredthrough the heat exchanger to the condenser loop and ultimately into theatmosphere or into the ground. In some embodiments, heat exchangermodule 814 operates the heat exchanger to prevent condenser loop frombecoming overloaded. For example, heat exchanger module 814 may limitthe total heat rejected to the capacity of the condenser loop minus theheat produced by the conventional chillers.

Ground loop module 812 and heat exchanger module 814 may modify thedecision matrix x by adding a new decision vector for each type ofthermal energy load. The new decision vectors may represent theoverproduction of each thermal energy load for each time step k withinthe optimization period. Ground loop module 812 and heat exchangermodule 814 may modify the equality constraints to account for anyoverproduced thermal energy loads. The overproduced thermal energy loadsmay be added to the equality constraints as slack variables that operatein the opposite direction of the unmet loads. The modified equalityconstraints may require that the predicted thermal energy loads plus anyoverproduction are equal to the total loads satisfied by subplants520-530 plus any unsatisfied thermal energy loads. Ground loop module812 and heat exchanger module 814 may modify the cost vector c with theadditional cost of the pumping power per unit of overproduction requiredto run the ground loop and/or the heat exchanger.

Demand Charge Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea demand charge module 816. As discussed above, optimization frameworkmodule 802 may formulate the optimization problem as:

${\underset{x}{argmin}c^{T}x};$ subject  to  Ax ≤ b, Hx = g

However, such a formulation may not account for the demand charge.

The demand charge is an additional charge imposed by some utilityproviders based on the maximum rate of energy consumption during anapplicable demand charge period. For example, the demand charge may beprovided in terms of dollars per unit of power (e.g., $/kW) and may bemultiplied by the peak power usage (e.g., kW) during a demand chargeperiod to calculate the demand charge. In some instances, the demandcharge can account for more than 15% of the electrical bill. Failure toinclude the demand charge in the optimization scheme can cause all ofthe equipment to turn on at the same time (e.g., the most efficient orlowest cost time). This would be optimal from a consumption coststandpoint. However, shifting some of the load in time may savethousands of dollars on demand while only costing a few dollars inconsumption cost.

Demand charge module 816 may be configured to modify the optimizationproblem to account for the demand charge. Incorporating the demandcharge into the optimization framework may greatly improve theperformance of the high level optimization. For example, including thedemand charge in the optimization framework may reduce the totaloperating costs of the central plant by an additional 5% on top of the8-10% cost reduction provided by other modules of central plantcontroller 506. In various implementations, the savings provided bydemand charge module 816 and/or central plant controller 506 as a wholemay be greater than or less than the exemplary amounts defined hereindue to differences in plant configuration and/or energy costs.

Demand charge module 816 may account for the demand charge by modifyingthe cost function used by high level optimizer 632. The modified costfunction may be defined as:

${\underset{x}{argmin}\left\lbrack {{c^{T}x} + {c_{demand}{\max\left( P_{{elec},k} \right)}}} \right\rbrack};$subject  to  Ax ≤ b, Hx = g

where c_(demand) is the demand charge (e.g., $/kW) for the applicabledemand charge period and P_(elec,k) is the total electrical powerpurchased from utilities 510 at time step k. The term max(P_(elec,k))selects the peak electrical power at any time during the demand chargeperiod. The demand charge c_(demand) and the demand charge period may bedefined by the utility rate information received from utilities 510 andmay be provided to high level optimizer 632 by load/rate predictor 622.

Incorporating the demand charge into the optimization frameworkcomplicates the optimization problem in two primary ways. First, thecost function is no longer linear due to the inclusion of the max( )function. Second, the consumption term c^(T)x calculates cost over aconsumption period defined by a time horizon, whereas the demand chargeterm c_(demand) max(P_(elec,k)) calculates cost over the demand chargeperiod. For example, the consumption period may be defined as the timeperiod beginning at the current time step k and ending at a future timestep k+h, where h represents the time horizon. The demand charge periodmay be defined by utilities 510 and provided to high level optimizer 632along with the utility rate information. In some instances, theconsumption period and the demand charge period may not be the same.This complicates the optimization problem by obfuscating potentialtrade-offs between control decisions that reduce the consumption term atthe expense of the demand charge term or vice versa.

Demand charge module 816 may modify the optimization problem toincorporate the demand charge term into the linear optimizationframework. For example, demand charge module 816 may modify the decisionmatrix x by adding a new decision variable x_(peak) as follows:

$x_{new} = \begin{bmatrix}\cdots & x_{{elec},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \cdots & x_{peak}\end{bmatrix}^{T}$

where x_(peak) is the peak electricity within the demand charge periodand x_(elec,1 . . . h) is the electricity purchase at each of the h timesteps. Demand charge module 816 may modify the cost vector c as follows:

$c_{new} = \begin{bmatrix}\cdots & c_{{elec},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \cdots & c_{demand}\end{bmatrix}^{T}$

such that the demand charge c_(demand) is multiplied by the peak powerconsumption x_(peak).

Demand charge module 816 may formulate and/or apply inequalityconstraints to ensure that the peak power consumption x_(peak) isgreater than or equal to the maximum electric demand over the demandcharge period. I.e.:

x_(peak) ≥ max (x_(elec, k))∀k∈  horizon

This inequality constraint may be represented in the linear optimizationframework by defining the A matrix and the b vector as follows:

${A = \begin{bmatrix}\ldots & I_{h} & \ldots & {- 1}\end{bmatrix}},{b = 0}$

During the high level optimization process, high level optimizer 632 maychoose a x_(peak) that is equal to the maximum electrical demand overthe demand charge period to minimize the cost associated with x_(peak).

Demand charge module 816 may apply an inequality constraint to ensurethat the peak power consumption decision variable X_(peak) is Greaterthan or Equal to its Previous Value x_(peak,previous) during the demandcharge period. This inequality constraint may be represented in thelinear optimization framework by defining the A matrix and the b vectoras follows:

A = [⋯   − 1], b = −x_(peak, previous)

Advantageously, the modifications to the decision variable matrix x, thecost vector C, and the inequality constraints provided by demand chargemodule 816 allow the cost function to be written in a linear form asfollows:

${{\underset{x}{argmin}\left\lbrack {c_{new}^{T}x_{new}} \right\rbrack} = {\underset{x}{argmin}\left\lbrack {{c^{T}x} + {c_{demand}x_{peak}}} \right\rbrack}};$subject  to  Ax ≤ b, Hx = g

This linear form of the cost function can be used in the linearoptimization framework.

The cost function as written in the previous equation has componentsthat are over different time periods. For example, the consumption termc^(T)x is over the consumption period whereas the demand charge termc_(demand)x_(peak) is over the demand charge period. To properly makethe trade-off between increasing the demand charge versus increasing thecost of energy consumption, demand charge module 816 may apply aweighting factor to the demand charge term and/or the consumption term.For example, demand charge module 816 may divide the consumption termc^(T)x by the duration h of the consumption period (i.e., the timeperiod between the current time and the time horizon) and multiply bythe amount of time d_(demand) remaining in the current demand chargeperiod so that the entire cost function is over the demand chargeperiod. The new optimization function may be given by:

${\underset{x}{argmin}\left\lbrack {{\frac{d_{demand}}{h}c^{T}x} + {c_{demand}x_{peak}}} \right\rbrack};$subject  to  Ax ≤ b, Hx = g

which is equivalent to:

${\underset{x}{argmin}\left\lbrack {{c^{T}x} + {\frac{h}{d_{demand}}c_{demand}x_{peak}}} \right\rbrack};$subject  to  Ax ≤ b, Hx = g

The latter form of the new optimization function has the advantage ofadjusting only one term of the function rather than several.

Tank Forced Full Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea tank forced full module 818. Tank forced full module 818 may modifythe optimization problem such that the thermal energy storage (TES)tanks are forced to full at the end of the optimization period. Thisfeature provides increased robustness in the event of a subplant failureand/or controller failure by ensuring that the TES tanks have sufficientstored thermal energy to satisfy building loads while the failure isbeing repaired. For example, plant operators can use the stored thermalenergy to meet the building loads while central plant controller 506 isbrought back online.

Tank forced full module 818 may force the TES tanks to full byincreasing the cost of discharging the TES tanks. In some embodiments,tank forced full module 818 modifies the cost of discharging the TEStanks such that the discharge cost is higher than other costs in thecost function, but less than the cost of unmet loads. This forces highlevel optimizer 632 to take the benefit (i.e., negative cost) ofcharging the TES tanks to their maximum values.

Penalty Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea penalty function module 820. In some instances, high level optimizer632 determines a solution to the optimization problem that includessignificantly changing the load on one or more of subplants 520-530within a relatively short timeframe. For example, the lowest costsolution from a resource consumption standpoint may involve taking asubplant from off to full load and back to off again within only a fewtime steps. This behavior may result from high level optimizer 632identifying small fluctuations in the economic cost of resources andoperating the central plant accordingly to achieve the minimal economiccost. However, operating the central plant in such a way may beundesirable due to various negative effects of rapidly changing thesubplant loads (e.g., increased equipment degradation), especially ifthe cost saved is relatively minimal (e.g., a few cents or dollars).

Penalty function module 820 may modify the optimization problem tointroduce a penalty for excessive equipment start/stops (e.g., in excessof a threshold). The penalty may subtract from the overall value whichhigh level optimizer 632 seeks to optimize and may be represented in thevalue function as the $Penalty term. In some embodiments, the penalty isdefined according to a penalty function. The penalty function may be afunction of the control decisions made by high level optimizer. Forexample, the penalty function may be defined as follows:

$Penalty = f(N_(commands))

where N_(commands) is the total number of on/off commands provided tothe equipment over the duration of the optimization period. In someembodiments, the value of the penalty is proportional to the number ofon/off commands or otherwise dependent upon the number of on/offcommands.

In some embodiments, penalty function module 820 modifies theoptimization problem to introduce a penalty for rapidly changing thesubplant loads. For example, penalty function module 820 may modify thedecision matrix x by adding a new decision vector for each subplant. Thenew decision vectors represent the change in subplant load for eachsubplant from one time step to the next. For example, penalty functionmodule 820 may modify the decision matrix x as follows:

$x = \begin{bmatrix}\cdots & \begin{matrix}\delta_{{sp}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \delta_{{sp}_{2},{1\mspace{14mu}\ldots\mspace{14mu} h}}\end{matrix} & \cdots & \delta_{{sp}_{n},{1\mspace{14mu}\ldots\mspace{14mu} h}}\end{bmatrix}^{T}$

where δ_(sp) ₁ _(,1 . . . h), δ_(sp) ₂ _(,1 . . . h), and δ_(sp) _(n)_(,1 . . . h) are h-dimensional vectors representing the changes inoutputs of each subplant at each time step k relative to the previoustime step k−1. For example, the variable δ_(sp) ₁ _(,k) may be definedas the difference between the decision variable x_(sp) ₁ _(,out) ₁ _(,k)representing the first output out₁ from subplant sp₁ at time k and thedecision variable x_(sp) ₁ _(,out) ₁ _(,k-1) representing the firstoutput out₁ from subplant sp₁ at time k−1.

Penalty function module 820 may modify the cost vector c to add a costassociated with changing the subplant outputs. For example, penaltyfunction module 820 may modify the cost vector c as follows:

$c = \begin{bmatrix}\ldots & c_{{sp}_{1},{1\mspace{14mu}\ldots\mspace{14mu} h}} & c_{{sp}_{2},{1\mspace{14mu}\ldots\mspace{14mu} h}} & \ldots & c_{{sp}_{n},{1\mspace{14mu}\ldots\mspace{14mu} h}}\end{bmatrix}^{T}$

where c_(sp) ₁ _(,1 . . . h), c_(sp) ₂ _(,1 . . . h), and c_(sp) _(n)_(,1 . . . h) are costs penalties associated with the changes insubplant outputs.

Penalty function module 820 may add constraints such that each of thevariables δ cannot be less than the change in the corresponding subplantload. For example, the added constraints for chiller subplant 522 mayhave the following form:

${A = \begin{bmatrix}\cdots & {I_{h} - D_{- 1}} & \cdots & {- I_{h}} & 0_{h} & 0_{h} \\\cdots & {D_{- 1} - I_{h}} & \cdots & {- I_{h}} & 0_{h} & 0_{h} \\\vdots & \vdots & \vdots & \vdots & \vdots & \vdots\end{bmatrix}},{b = \begin{bmatrix}\begin{bmatrix}x_{{sp}_{1},{out}_{1},{k - 1}} \\0_{h - 1}\end{bmatrix} \\\begin{bmatrix}{- x_{{sp}_{1},{out}_{1},{k - 1}}} \\0_{h - 1}\end{bmatrix} \\\vdots\end{bmatrix}}$

where x_(sp) ₁ _(,out) ₁ _(,k-1) is the value of the decision variablerepresenting the output of subplant sp₁ at time k−1. Similar constraintsmay be added for each of subplants 520-530.

The constraints added by penalty function module 820 require the changevariables δ to be greater than or equal to the magnitude of thedifference between the current value of the corresponding subplantoutput and the previous value of the subplant output. In operation, highlevel optimizer 632 may select values for the change variables δ thatare equal to the magnitude of the difference due to the costs associatedwith the change variables. In other words, high level optimizer 632 maynot choose to make the change variables δ greater than the actual changein the corresponding subplant output because making the change variablesδ greater than necessary would be suboptimal.

Incentive Program Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includean incentive program module 822. Incentive program module 822 may modifythe optimization problem to account for revenue from participating in anincentive-based demand response (IBDR) program. IBDR programs mayinclude any type of incentive-based program that provides revenue inexchange for resources (e.g., electric power) or a reduction in a demandfor such resources. For example, central plant system 500 may provideelectric power to an energy grid or an independent service operator aspart of a frequency response program (e.g., PJM frequency response) or asynchronized reserve market. In a frequency response program, aparticipant contracts with an electrical supplier to maintain reservepower capacity that can be supplied or removed from an energy grid bytracking a supplied signal. The participant is paid by the amount ofpower capacity required to maintain in reserve. In other types of IBDRprograms, central plant system 500 may reduce its demand for resourcesfrom a utility as part of a load shedding program. It is contemplatedthat central plant system 500 may participate in any number and/or typeof IBDR programs.

Advantageously, incentive program module 822 may be configured to modifythe optimization problem to account for participation in any number ofIBDR programs. For example, incentive program module 822 may incorporateIBDR revenue into the value function which high level optimizer 632seeks to optimize (e.g., the $IBDR term of the value function).Incentive program module 822 may also add a decision variablex_(resource) _(p) _(,prog) _(s) _(,1 . . . h) to the decision matrix xfor each IBDR program in which central plant system 500 can potentiallyparticipate, as shown in the following equation:

$x = \begin{bmatrix}\cdots & x_{{resource}_{p},{under},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{resource}_{p},{over},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{resource}_{p},{storage},{1\mspace{14mu}\ldots\mspace{14mu} h}} & x_{{resource}_{p},{prog}_{s},{1\mspace{14mu}\ldots\mspace{14mu} h}}\end{bmatrix}^{T}$

where the decision variable x_(resource) _(p) _(,prog) _(s)_(,1 . . . h) represents the amount of resource p allocated to IBDRprogram s at each of the h time steps. Incentive program module 822 mayadd similar decision variables for each IBDR program.

Incentive program module 822 may modify the cost vector c to include therevenue offered for participating in each IBDR program. For example,incentive program module 822 may modify the cost vector c as shown inthe following equation:

$c = \begin{bmatrix}\cdots & M & M & 0 & {- r_{{resource}_{p},{prog}_{s},{1\mspace{14mu}\ldots\mspace{14mu} h}}}\end{bmatrix}^{T}$

where the variable r_(resource) _(p) _(,prog) _(s) _(,1 . . . h)represents the revenue offered for participating in IBDR program s ateach of the h time steps. The revenue variables may be based onstatistical estimates of IBDR event characteristics (e.g., event times,revenue potential, reserve capacity required, etc.) as described withreference to incentive estimator 620.

Incentive program module 822 may generate and impose constraints thatallow for participation in various IBDR programs. For example, incentiveprogram module 822 may modify the A matrix and the b vector as shown inthe following equation:

${A = \begin{bmatrix}\cdots & 0 & 0 & I_{h} & p_{charge} \\\cdots & 0 & 0 & {- I_{h}} & p_{discharge} \\\cdots & 0 & 0 & {T_{s}\Delta_{h}} & p_{cap} \\\cdots & 0 & 0 & {{- T_{s}}\Delta_{h}} & p_{cap}\end{bmatrix}},{b = \begin{bmatrix}\vdots \\x_{{discharge}_{p,\max}} \\x_{{charge}_{p,\max}} \\C_{{storage}_{p,0}} \\{C_{{storage}_{p,\max}} - C_{{storage}_{p,0}}}\end{bmatrix}}$

where p_(charge), p_(discharge), and p_(cap) are the marginal amounts ofreserve charging rate, discharging rate, and storage capacity (per unitof participation) that must be maintained in order to participate in theIBDR program. Advantageously, these constraints allow high leveloptimizer 632 to weigh the benefits of participating in various IBDRprograms (e.g., expected revenue) against the costs of participation(e.g., less resources available for satisfying building loads). If theexpected revenue for participation outweighs the costs, high leveloptimizer 632 may allocate resources to the IBDR program. However, ifthe expected revenue does not outweigh the costs, high level optimizer632 may allocate the resources to satisfying building loads.

Battery Capacity Loss Incorporation

Still referring to FIG. 8, high level optimizer 632 is shown to includea battery capacity loss module 824. Battery capacity loss module 824 maybe configured to adjust the optimization problem to account for a lossin battery capacity (e.g., electrical energy storage 533) as a result ofthe control decisions made by high level optimizer 632. For example,battery capacity loss module 824 may use a battery capacity loss modelto determine an expected loss in battery capacity as a result of thecontrol decisions. The battery capacity loss model may monetize the lossin battery capacity based on the lost revenue of not being able toparticipate in IBDR programs due to premature battery capacity lossattributed to certain control actions. The monetized loss in batterycapacity may be provided as a term in the value function (e.g., the $BLterm) which high level optimizer 632 seeks to optimize.

In some embodiments, battery capacity loss module 824 estimates batterycapacity loss as a function of the decision variables. For example, theloss in battery capacity may be defined by the following batterycapacity loss model:

${\${BL}} = {f\left( {{DOD},T,{SOC},{\sum{kW}_{batt}},{\sum\frac{{dkW}_{batt}}{dt}},\overset{\_}{RMCPP},\overset{\_}{RMPCP},\overset{\_}{MR},i_{n},n} \right)}$

where $BL is the monetized cost of battery capacity loss, DOD representsthe depth of discharge of the battery, SOC represents the state ofcharge of the battery, kW_(batt) represents the battery power draw,

$\frac{{dkW}_{batt}}{dt}$

represents the change in battery power draw, RMCCP represents theaverage regulation market capability clearing price (RMCCP), RMPCPrepresents the average regulation market performance clearing price(RMCCP) and MR represents the average mileage ratio (MR). The loss inbattery capacity may be a function of several inputs which can bemodified by high level optimizer 632 such as the state of charge, thedepth of discharge, the amount of energy moved (e.g., average powerratio), and the change in power draw (e.g., average effort ratio). Forexample, high level optimizer 632 can increase or decrease many of theseinputs by adjusting the amount of power allocated to the battery (i.e.,electrical energy storage subplant 533) at each time step.

In some embodiments, battery capacity loss module 824 determines anexpected loss in battery capacity as a function of the control decisionsmade by high level optimizer 632. Battery capacity loss module 824 maymonetize the expected loss in battery capacity and/or provide theexpected loss in battery capacity to high level optimizer 632. Highlevel optimizer 632 may use the expected loss in battery capacity overtime to determine the consequences of certain control decisions. Forexample, some control decisions may result in a relatively faster lossin battery capacity than other control decisions. Therefore, somecontrol decisions may limit the ability of central plant system 500 toparticipate in IBDR programs in the future due to the battery capacityfailing to meet IBDR requirements. Advantageously, high level optimizer632 can predict the expected loss in revenue resulting from certaincontrol decisions and weigh the predicted loss in revenue against thebenefits of the control decisions. High level optimizer 632 may select aset of optimal control decisions that maximizes the overall value overthe duration of the prediction window, while accounting for the cost ofcertain control decisions in terms of losses in battery capacity and thelost IBDR revenue associated therewith.

Subplant Curves

Referring now to FIGS. 9A-B, two subplant curves 900 and 910 are shown,according to an exemplary embodiment. Subplant curves 900 and 910 definethe resource usage of a subplant (e.g., one of subplants 520-530) as afunction of the subplant load. Each subplant curve may be specific to aparticular subplant and a particular type of resource used by thesubplant. For example, subplant curve 900 may define the electricity use902 of chiller subplant 522 as a function of the load 904 on chillersubplant 522, whereas subplant curve 910 may define the water use 906 ofchiller subplant 522 as a function of the load 904 on chiller subplant522. Each of subplants 520-530 may have one or more subplant curves(e.g., one for each type of resource consumed by the subplant).

In some embodiments, low level optimizer 634 generates subplant curves900 and 910 based on equipment models 618 (e.g., by combining equipmentmodels 618 for individual devices into an aggregate curve for thesubplant). Low level optimizer 634 may generate subplant curves 900 and910 by running the low level optimization process for several differentloads and weather conditions to generate multiple data points. Low leveloptimizer 634 may fit a curve to the data points to generate thesubplant curves. In other embodiments, low level optimizer 634 providesthe data points to high level optimizer 632 and high level optimizer 632generates the subplant curves using the data points.

Referring now to FIG. 10, another subplant curve 1000 is shown,according to an exemplary embodiment. Subplant curve 1000 defines theelectricity use of chiller subplant 522 as a function of the cold waterproduction of chiller subplant 522. In some embodiments, subplant curve1000 is generated by combining efficiency curves for individual devicesof chiller subplant 522 (e.g., individual chillers, pumps, etc.). Forexample, each of the chillers in subplant 522 may have a device-specificefficiency curve that defines the amount of electricity use by thechiller as a function of the load on the chiller. Many devices operateless efficiently at higher loads and have device efficiency curves thatare U-shaped functions of load. Accordingly, combining multiple deviceefficiency curves to form subplant curve 1000 may result in subplantcurve 1000 having one or more waves 1002, as shown in FIG. 10. Waves1002 may be caused by a single device loading up before it is moreefficient to turn on another device to satisfy the subplant load.

Referring now to FIG. 11, a linearized subplant curve 1100 is shown,according to an exemplary embodiment. Subplant curve 1100 defines theelectricity use of chiller subplant 522 as a function of the cold waterproduction of chiller subplant 522. Subplant curve 1100 may be generatedby converting subplant curve 1000 into a linearized convex curve. Aconvex curve is a curve for which a line connecting any two points onthe curve is always above or along the curve (i.e., not below thecurve). Convex curves may be advantageous for use in the high leveloptimization because they allow for an optimization process that is lesscomputationally expensive relative to an optimization process that usesnon-convex functions.

In some embodiments, subplant curve 1100 is generated by subplant curvelinearizer 836, as described with reference to FIG. 8. Subplant curve1100 may be created by generating a plurality of linear segments (i.e.,segments 1102, 1104, and 1106) that approximate subplant curve 1000 andcombining the linear segments into a piecewise-defined linearized convexcurve 1100. Linearized subplant curve 1100 is shown to include a firstlinear segment 1102 connecting point [u₁, Q₁] to point [u₂, Q₂], asecond linear segment 1104 connecting point [u₂, Q₂] to point [u₃, Q₃],and a third linear segment 1106 connecting point [u₃, Q₃] to point [u₄,Q₄]. The endpoints of line segments 1102-1106 may be used to formconstraints that force the electricity use of chiller subplant 522 inthe epigraph of the linearized subplant curve 1100.

Referring now to FIG. 12, another subplant curve 1200 is shown,according to an exemplary embodiment. Subplant curve 1200 defines theenergy use of one of subplants 520-530 as a function of the load on thesubplant for several different weather conditions. In some embodiments,subplant curve 1200 is generated by subplant curves module 830 usingexperimental data obtained from the low level optimizer 634. Forexample, subplant curve updater 832 may request resource usage data fromlow level optimizer 634 for various combinations of load conditions andenvironmental conditions. In the embodiment shown in FIG. 12, subplantcurve updater 832 requests energy use data for each combination oftemperature (e.g., 40° F., 50° F., 60° F., and 70° F.) and load (e.g.,170 tons, 330 tons, 500 tons, 830 tons, and 1000 tons). Low leveloptimizer 634 may perform the low level optimization process for therequested load and temperature combinations and return an energy usevalue for each combination.

Subplant curve updater 832 may use the data points provided by low leveloptimizer 634 to find the best piecewise linear convex function thatfits the data. For example, subplant curve updater 832 may fit a firstsubplant curve 1202 to the data points at 70° F., a second subplantcurve 1204 to the data points at 60° F., a third subplant curve 1206 tothe data points at 50° F., and a fourth subplant curve 1208 to the datapoints at 40° F. Subplant curve updater 832 may store the generatedsubplant curves 1202-1208 in subplant curves database 834 for use in thehigh level optimization algorithm.

In some implementations, central plant controller 506 uses high leveloptimizer 632 as part of an operational tool to exercise real-timecontrol over the central plant. In the operational tool, high leveloptimizer 632 may receive load and rate predictions from load/ratepredictor 622 and subplant curves (or data that can be used to generatesubplant curves) from low level optimizer 634. When implemented in theoperational tool, high level optimizer 632 may determine an optimal loaddistribution for heater subplant 521, heat recovery chiller subplant523, chiller subplant 522, hot TES subplant 531, cold TES subplant 532,electrical energy storage subplant 533, and/or energy purchasers 504, asdescribed with reference to FIGS. 5-8. In some embodiments, high leveloptimizer 632 determines ground loop and heat exchanger transfer ratesin addition to the subplant loads. When implemented in the operationaltool, high level optimizer 632 may provide the determined resourceallocation to low level optimizer 634 for use in determining optimalon/off decisions and/or operating setpoints for the equipment of eachsubplant.

Planning Tool

Referring now to FIG. 13, a block diagram of a planning system 1300 isshown, according to an exemplary embodiment. Planning system 1300 may beconfigured to use demand response optimizer 630 as part of a planningtool 1302 to simulate the operation of a central plant over apredetermined time period (e.g., a day, a month, a week, a year, etc.)for planning, budgeting, and/or design considerations. When implementedin planning tool 1302, demand response optimizer 630 may operate in asimilar manner as described with reference to FIGS. 6-8. For example,demand response optimizer 630 may use building loads and utility ratesto determine an optimal resource allocation to minimize cost over asimulation period. However, planning tool 1302 may not be responsiblefor real-time control of a building management system or central plant.

In planning tool 1302, high level optimizer 632 may receive plannedloads and utility rates for the entire simulation period. The plannedloads and utility rates may be defined by input received from a user viaa client device 1322 (e.g., user-defined, user selected, etc.) and/orretrieved from a plan information database 1326. High level optimizer632 uses the planned loads and utility rates in conjunction withsubplant curves from low level optimizer 634 to determine an optimalresource allocation (i.e., an optimal dispatch schedule) for a portionof the simulation period.

The portion of the simulation period over which high level optimizer 632optimizes the resource allocation may be defined by a prediction windowending at a time horizon. With each iteration of the optimization, theprediction window is shifted forward and the portion of the dispatchschedule no longer in the prediction window is accepted (e.g., stored oroutput as results of the simulation). Load and rate predictions may bepredefined for the entire simulation and may not be subject toadjustments in each iteration. However, shifting the prediction windowforward in time may introduce additional plan information (e.g., plannedloads and/or utility rates) for the newly-added time slice at the end ofthe prediction window. The new plan information may not have asignificant effect on the optimal dispatch schedule since only a smallportion of the prediction window changes with each iteration.

In some embodiments, high level optimizer 632 requests all of thesubplant curves used in the simulation from low level optimizer 634 atthe beginning of the simulation. Since the planned loads andenvironmental conditions are known for the entire simulation period,high level optimizer 632 may retrieve all of the relevant subplantcurves at the beginning of the simulation. In some embodiments, lowlevel optimizer 634 generates functions that map subplant production toequipment level production and resource use when the subplant curves areprovided to high level optimizer 632. These subplant to equipmentfunctions may be used to calculate the individual equipment productionand resource use (e.g., in a post-processing module) based on theresults of the simulation.

Still referring to FIG. 13, planning tool 1302 is shown to include acommunications interface 1304 and a processing circuit 1306.Communications interface 1304 may include wired or wireless interfaces(e.g., jacks, antennas, transmitters, receivers, transceivers, wireterminals, etc.) for conducting data communications with varioussystems, devices, or networks. For example, communications interface1304 may include an Ethernet card and port for sending and receivingdata via an Ethernet-based communications network and/or a WiFitransceiver for communicating via a wireless communications network.Communications interface 1304 may be configured to communicate via localarea networks or wide area networks (e.g., the Internet, a building WAN,etc.) and may use a variety of communications protocols (e.g., BACnet,IP, LON, etc.).

Communications interface 1304 may be a network interface configured tofacilitate electronic data communications between planning tool 1302 andvarious external systems or devices (e.g., client device 1322, resultsdatabase 1328, plan information database 1326, etc.). For example,planning tool 1302 may receive planned loads and utility rates fromclient device 1322 and/or plan information database 1326 viacommunications interface 1304. Planning tool 1302 may use communicationsinterface 1304 to output results of the simulation to client device 1322and/or to store the results in results database 1328.

Still referring to FIG. 13, processing circuit 1306 is shown to includea processor 1310 and memory 1312. Processor 1310 may be a generalpurpose or specific purpose processor, an application specificintegrated circuit (ASIC), one or more field programmable gate arrays(FPGAs), a group of processing components, or other suitable processingcomponents. Processor 1310 may be configured to execute computer code orinstructions stored in memory 1312 or received from other computerreadable media (e.g., CDROM, network storage, a remote server, etc.).

Memory 1312 may include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 1312 may include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory1312 may include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 1312 may be communicably connected toprocessor 1310 via processing circuit 1306 and may include computer codefor executing (e.g., by processor 1310) one or more processes describedherein.

Still referring to FIG. 13, memory 1312 is shown to include a GUI engine1316, web services 1314, and configuration tools 1318. In an exemplaryembodiment, GUI engine 1316 includes a graphical user interfacecomponent configured to provide graphical user interfaces to a user forselecting or defining plan information for the simulation (e.g., plannedloads, utility rates, environmental conditions, etc.). Web services 1314may allow a user to interact with planning tool 1302 via a web portaland/or from a remote system or device (e.g., an enterprise controlapplication).

Configuration tools 1318 can allow a user to define (e.g., via graphicaluser interfaces, via prompt-driven “wizards,” etc.) various parametersof the simulation such as the number and type of subplants, the deviceswithin each subplant, the subplant curves, device-specific efficiencycurves, the duration of the simulation, the duration of the predictionwindow, the duration of each time step, and/or various other types ofplan information related to the simulation. Configuration tools 1318 canpresent user interfaces for building the simulation. The user interfacesmay allow users to define simulation parameters graphically. In someembodiments, the user interfaces allow a user to select a pre-stored orpre-constructed simulated plant and/or plan information (e.g., from planinformation database 1326) and adapt it or enable it for use in thesimulation.

Still referring to FIG. 13, memory 1312 is shown to include demandresponse optimizer 630. Demand response optimizer 630 may use theplanned loads and utility rates to determine an optimal resourceallocation over a prediction window. The operation of demand responseoptimizer 630 may be the same or similar as previously described withreference to FIGS. 6-8. With each iteration of the optimization process,demand response optimizer 630 may shift the prediction window forwardand apply the optimal resource allocation for the portion of thesimulation period no longer in the prediction window. Demand responseoptimizer 630 may use the new plan information at the end of theprediction window to perform the next iteration of the optimizationprocess. Demand response optimizer 630 may output the applied resourceallocation to reporting applications 1330 for presentation to a clientdevice 1322 (e.g., via user interface 1324) or storage in resultsdatabase 1328.

Still referring to FIG. 13, memory 1312 is shown to include reportingapplications 1330. Reporting applications 1330 may receive the optimizedresource allocations from demand response optimizer 630 and, in someembodiments, costs associated with the optimized resource allocations.Reporting applications 1330 may include a web-based reportingapplication with several graphical user interface (GUI) elements (e.g.,widgets, dashboard controls, windows, etc.) for displaying keyperformance indicators (KPI) or other information to users of a GUI. Inaddition, the GUI elements may summarize relative energy use andintensity across various plants, subplants, or the like. Other GUIelements or reports may be generated and shown based on available datathat allow users to assess the results of the simulation. The userinterface or report (or underlying data engine) may be configured toaggregate and categorize resource allocation and the costs associatedtherewith and provide the results to a user via a GUI. The GUI elementsmay include charts or histograms that allow the user to visually analyzethe results of the simulation. An exemplary output that may be generatedby reporting applications 1330 is shown in FIG. 14.

Referring now to FIG. 14, several graphs 1400 illustrating the operationof planning tool 1302 are shown, according to an exemplary embodiment.With each iteration of the optimization process, planning tool 1302selects an optimization period (i.e., a portion of the simulationperiod) over which the optimization is performed. For example, planningtool 1302 may select optimization period 1402 for use in the firstiteration. Once the optimal resource allocation 1410 has beendetermined, planning tool 1302 may select a portion 1418 of resourceallocation 1410 to send to plant dispatch 1430. Portion 1418 may be thefirst b time steps of resource allocation 1410. Planning tool 1302 mayshift the optimization period 1402 forward in time, resulting inoptimization period 1404. The amount by which the prediction window isshifted may correspond to the duration of time steps b.

Planning tool 1302 may repeat the optimization process for optimizationperiod 1404 to determine the optimal resource allocation 1412. Planningtool 1302 may select a portion 1420 of resource allocation 1412 to sendto plant dispatch 1430. Portion 1420 may be the first b time steps ofresource allocation 1412. Planning tool 1302 may then shift theprediction window forward in time, resulting in optimization period1406. This process may be repeated for each subsequent optimizationperiod (e.g., optimization periods 1406, 1408, etc.) to generate updatedresource allocations (e.g., resource allocations 1414, 1416, etc.) andto select portions of each resource allocation (e.g., portions 1422,1424) to send to plant dispatch 1430. Plant dispatch 1430 includes thefirst b time steps 1418-1424 from each of optimization periods1402-1408. Once the optimal resource allocation is compiled for theentire simulation period, the results may be sent to reportingapplications 1330, results database 1328, and/or client device 1322, asdescribed with reference to FIG. 13.

Electrical Energy Storage System with Frequency Regulation and Ramp RateControl

Referring now to FIGS. 15-16, an electrical energy storage system 1500is shown, according to an exemplary embodiment. System 1500 can usebattery storage to perform both ramp rate control and frequencyregulation. Ramp rate control is the process of offsetting ramp rates(i.e., increases or decreases in the power output of an energy systemsuch as a photovoltaic energy system) that fall outside of compliancelimits determined by the electric power authority overseeing the energygrid. Ramp rate control typically requires the use of an energy sourcethat allows for offsetting ramp rates by either supplying additionalpower to the grid or consuming more power from the grid. In someinstances, a facility is penalized for failing to comply with ramp raterequirements.

Frequency regulation is the process of maintaining the stability of thegrid frequency (e.g., 60 Hz in the United States). The grid frequencymay remain balanced as long as there is a balance between the demandfrom the energy grid and the supply to the energy grid. An increase indemand yields a decrease in grid frequency, whereas an increase insupply yields an increase in grid frequency. During a fluctuation of thegrid frequency, system 1500 may offset the fluctuation by either drawingmore energy from the energy grid (e.g., if the grid frequency is toohigh) or by providing energy to the energy grid (e.g., if the gridfrequency is too low). Advantageously, system 1500 may use batterystorage in combination with photovoltaic power to perform frequencyregulation while simultaneously complying with ramp rate requirementsand maintaining the state-of-charge of the battery storage within apredetermined desirable range.

System 1500 is shown to include a photovoltaic (PV) field 1502, a PVfield power inverter 1504, a battery 1506, a battery power inverter1508, a point of interconnection (POI) 1510, and an energy grid 1512. Insome embodiments, system 1500 also includes a controller 1514 (shown inFIG. 15) and/or a building 1518 (shown in FIG. 16). In brief overview,PV field power inverter 1504 can be operated by controller 1514 tocontrol the power output of PV field 1502. Similarly, battery powerinverter 1508 can be operated by controller 1514 to control the powerinput and/or power output of battery 1506. The power outputs of PV fieldpower inverter 1504 and battery power inverter 1508 combine at POI 1510to form the power provided to energy grid 1512. In some embodiments,building 1518 is also connected to POI 1510. Building 1518 can consume aportion of the combined power at POI 1510 to satisfy the energyrequirements of building 1518.

PV field 1502 may include a collection of photovoltaic cells. Thephotovoltaic cells are configured to convert solar energy (i.e.,sunlight) into electricity using a photovoltaic material such asmonocrystalline silicon, polycrystalline silicon, amorphous silicon,cadmium telluride, copper indium gallium selenide/sulfide, or othermaterials that exhibit the photovoltaic effect. In some embodiments, thephotovoltaic cells are contained within packaged assemblies that formsolar panels. Each solar panel may include a plurality of linkedphotovoltaic cells. The solar panels may combine to form a photovoltaicarray.

PV field 1502 may have any of a variety of sizes and/or locations. Insome embodiments, PV field 1502 is part of a large-scale photovoltaicpower station (e.g., a solar park or farm) capable of providing anenergy supply to a large number of consumers. When implemented as partof a large-scale system, PV field 1502 may cover multiple hectares andmay have power outputs of tens or hundreds of megawatts. In otherembodiments, PV field 1502 may cover a smaller area and may have arelatively lesser power output (e.g., between one and ten megawatts,less than one megawatt, etc.). For example, PV field 1502 may be part ofa rooftop-mounted system capable of providing enough electricity topower a single home or building. It is contemplated that PV field 1502may have any size, scale, and/or power output, as may be desirable indifferent implementations.

PV field 1502 may generate a direct current (DC) output that depends onthe intensity and/or directness of the sunlight to which the solarpanels are exposed. The directness of the sunlight may depend on theangle of incidence of the sunlight relative to the surfaces of the solarpanels. The intensity of the sunlight may be affected by a variety ofenvironmental factors such as the time of day (e.g., sunrises andsunsets) and weather variables such as clouds that cast shadows upon PVfield 1502. When PV field 1502 is partially or completely covered byshadow, the power output of PV field 1502 (i.e., PV field power P_(PV))may drop as a result of the decrease in solar intensity.

In some embodiments, PV field 1502 is configured to maximize solarenergy collection. For example, PV field 1502 may include a solartracker (e.g., a GPS tracker, a sunlight sensor, etc.) that adjusts theangle of the solar panels so that the solar panels are aimed directly atthe sun throughout the day. The solar tracker may allow the solar panelsto receive direct sunlight for a greater portion of the day and mayincrease the total amount of power produced by PV field 1502. In someembodiments, PV field 1502 includes a collection of mirrors, lenses, orsolar concentrators configured to direct and/or concentrate sunlight onthe solar panels. The energy generated by PV field 1502 may be stored inbattery 1506 or provided to energy grid 1512.

Still referring to FIG. 15, system 1500 is shown to include a PV fieldpower inverter 1504. Power inverter 1504 may be configured to convertthe DC output of PV field 1502 P_(PV) into an alternating current (AC)output that can be fed into energy grid 1512 or used by a local (e.g.,off-grid) electrical network and/or by building 1518. For example, powerinverter 1504 may be a solar inverter or grid-tie inverter configured toconvert the DC output from PV field 1502 into a sinusoidal AC outputsynchronized to the grid frequency of energy grid 1512. In someembodiments, power inverter 1504 receives a cumulative DC output from PVfield 1502. For example, power inverter 1504 may be a string inverter ora central inverter. In other embodiments, power inverter 1504 mayinclude a collection of micro-inverters connected to each solar panel orsolar cell. PV field power inverter 1504 may convert the DC power outputP_(PV) into an AC power output u_(PV) and provide the AC power outputu_(PV) to POI 1510.

Power inverter 1504 may receive the DC power output P_(PV) from PV field1502 and convert the DC power output to an AC power output that can befed into energy grid 1512. Power inverter 1504 may synchronize thefrequency of the AC power output with that of energy grid 1512 (e.g., 50Hz or 60 Hz) using a local oscillator and may limit the voltage of theAC power output to no higher than the grid voltage. In some embodiments,power inverter 1504 is a resonant inverter that includes or uses LCcircuits to remove the harmonics from a simple square wave in order toachieve a sine wave matching the frequency of energy grid 1512. Invarious embodiments, power inverter 1504 may operate usinghigh-frequency transformers, low-frequency transformers, or withouttransformers. Low-frequency transformers may convert the DC output fromPV field 1502 directly to the AC output provided to energy grid 1512.High-frequency transformers may employ a multi-step process thatinvolves converting the DC output to high-frequency AC, then back to DC,and then finally to the AC output provided to energy grid 1512.

Power inverter 1504 may be configured to perform maximum power pointtracking and/or anti-islanding. Maximum power point tracking may allowpower inverter 1504 to produce the maximum possible AC power from PVfield 1502. For example, power inverter 1504 may sample the DC poweroutput from PV field 1502 and apply a variable resistance to find theoptimum maximum power point. Anti-islanding is a protection mechanismthat immediately shuts down power inverter 1504 (i.e., preventing powerinverter 1504 from generating AC power) when the connection to anelectricity-consuming load no longer exists. In some embodiments, PVfield power inverter 1504 performs ramp rate control by limiting thepower generated by PV field 1502.

PV field power inverter 1504 can include any of a variety of circuitcomponents (e.g., resistors, capacitors, indictors, transformers,transistors, switches, diodes, etc.) configured to perform the functionsdescribed herein. In some embodiments DC power from PV field 1502 isconnected to a transformer of PV field power inverter 1504 through acenter tap of a primary winding. A switch can be rapidly switched backand forth to allow current to flow back to PV field 1502 following twoalternate paths through one end of the primary winding and then theother. The alternation of the direction of current in the primarywinding of the transformer can produce alternating current (AC) in asecondary circuit.

In some embodiments, PV field power inverter 1504 uses anelectromechanical switching device to convert DC power from PV field1502 into AC power. The electromechanical switching device can includetwo stationary contacts and a spring supported moving contact. Thespring can hold the movable contact against one of the stationarycontacts, whereas an electromagnet can pull the movable contact to theopposite stationary contact. Electric current in the electromagnet canbe interrupted by the action of the switch so that the switchcontinually switches rapidly back and forth. In some embodiments, PVfield power inverter 1504 uses transistors, thyristors (SCRs), and/orvarious other types of semiconductor switches to convert DC power fromPV field 1502 into AC power. SCRs provide large power handlingcapability in a semiconductor device and can readily be controlled overa variable firing range.

In some embodiments, PV field power inverter 1504 produces a squarevoltage waveform (e.g., when not coupled to an output transformer). Inother embodiments, PV field power inverter 1504 produces a sinusoidalwaveform that matches the sinusoidal frequency and voltage of energygrid 1512. For example, PV field power inverter 1504 can use Fourieranalysis to produce periodic waveforms as the sum of an infinite seriesof sine waves. The sine wave that has the same frequency as the originalwaveform is called the fundamental component. The other sine waves,called harmonics, that are included in the series have frequencies thatare integral multiples of the fundamental frequency.

In some embodiments, PV field power inverter 1504 uses inductors and/orcapacitors to filter the output voltage waveform. If PV field powerinverter 1504 includes a transformer, filtering can be applied to theprimary or the secondary side of the transformer or to both sides.Low-pass filters can be applied to allow the fundamental component ofthe waveform to pass to the output while limiting the passage of theharmonic components. If PV field power inverter 1504 is designed toprovide power at a fixed frequency, a resonant filter can be used. If PVfield power inverter 1504 is an adjustable frequency inverter, thefilter can be tuned to a frequency that is above the maximum fundamentalfrequency. In some embodiments, PV field power inverter 1504 includesfeedback rectifiers or antiparallel diodes connected acrosssemiconductor switches to provide a path for a peak inductive loadcurrent when the switch is turned off. The antiparallel diodes can besimilar to freewheeling diodes commonly used in AC/DC convertercircuits.

Still referring to FIG. 15, system 1500 is shown to include a batterypower inverter 1508. Battery power inverter 1508 may be configured todraw a DC power P_(bat) from battery 1506, convert the DC power P_(bat)into an AC power u_(bat), and provide the AC power u_(bat) to POI 1510.Battery power inverter 1508 may also be configured to draw the AC poweru_(bat) from POI 1510, convert the AC power u_(bat) into a DC batterypower P_(bat), and store the DC battery power P_(bat) in battery 1506.As such, battery power inverter 1508 can function as both a powerinverter and a rectifier to convert between DC and AC in eitherdirection. The DC battery power P_(bat) may be positive if battery 1506is providing power to battery power inverter 1508 (i.e., if battery 1506is discharging) or negative if battery 1506 is receiving power frombattery power inverter 1508 (i.e., if battery 1506 is charging).Similarly, the AC battery power u_(bat) may be positive if battery powerinverter 1508 is providing power to POI 1510 or negative if batterypower inverter 1508 is receiving power from POI 1510.

The AC battery power u_(bat) is shown to include an amount of power usedfor frequency regulation (i.e., u_(FR)) and an amount of power used forramp rate control (i.e., u_(RR)) which together form the AC batterypower (i.e., u_(bat)=u_(FR)+u_(RR)). The DC battery power P_(bat) isshown to include both u_(FR) and u_(RR) as well as an additional termP_(loss) representing power losses in battery 1506 and/or battery powerinverter 1508 (i.e., P_(bat)=u_(FR)+u_(RR)+P_(loss)). The PV field poweru_(PV) and the battery power u_(bat) combine at POI 1510 to form P_(POI)(i.e., P_(POI)=u_(PV)+u_(bat)), which represents the amount of powerprovided to energy grid 1512. P_(POI) may be positive if POI 1510 isproviding power to energy grid 1512 or negative if POI 1510 is receivingpower from energy grid 1512.

Like PV field power inverter 1504, battery power inverter 1508 caninclude any of a variety of circuit components (e.g., resistors,capacitors, indictors, transformers, transistors, switches, diodes,etc.) configured to perform the functions described herein. Batterypower inverter 1508 can include many of the same components as PV fieldpower inverter 1504 and can operate using similar principles. Forexample, battery power inverter 1508 can use electromechanical switchingdevices, transistors, thyristors (SCRs), and/or various other types ofsemiconductor switches to convert between AC and DC power. Battery powerinverter 1508 can operate the circuit components to adjust the amount ofpower stored in battery 1506 and/or discharged from battery 1506 (i.e.,power throughput) based on a power control signal or power setpoint fromcontroller 1514.

Still referring to FIG. 15, system 1500 is shown to include a controller1514. Controller 1514 may be configured to generate a PV power setpointu_(PV) for PV field power inverter 1504 and a battery power setpointu_(bat) for battery power inverter 1508. Throughout this disclosure, thevariable u_(PV) is used to refer to both the PV power setpoint generatedby controller 1514 and the AC power output of PV field power inverter1504 since both quantities have the same value. Similarly, the variableu_(bat) is used to refer to both the battery power setpoint generated bycontroller 1514 and the AC power output/input of battery power inverter1508 since both quantities have the same value.

PV field power inverter 1504 uses the PV power setpoint u_(PV) tocontrol an amount of the PV field power P_(PV) to provide to POI 1510.The magnitude of u_(PV) may be the same as the magnitude of P_(PV) orless than the magnitude of P_(PV). For example, u_(PV) may be the sameas P_(PV) if controller 1514 determines that PV field power inverter1504 is to provide all of the photovoltaic power P_(PV) to POI 1510.However, u_(PV) may be less than P_(PV) if controller 1514 determinesthat PV field power inverter 1504 is to provide less than all of thephotovoltaic power P_(PV) to POI 1510. For example, controller 1514 maydetermine that it is desirable for PV field power inverter 1504 toprovide less than all of the photovoltaic power P_(PV) to POI 1510 toprevent the ramp rate from being exceeded and/or to prevent the power atPOI 1510 from exceeding a power limit.

Battery power inverter 1508 uses the battery power setpoint u_(bat) tocontrol an amount of power charged or discharged by battery 1506. Thebattery power setpoint u_(bat) may be positive if controller 1514determines that battery power inverter 1508 is to draw power frombattery 1506 or negative if controller 1514 determines that batterypower inverter 1508 is to store power in battery 1506. The magnitude ofu_(bat) controls the rate at which energy is charged or discharged bybattery 1506.

Controller 1514 may generate u_(PV) and u_(bat) based on a variety ofdifferent variables including, for example, a power signal from PV field1502 (e.g., current and previous values for P_(PV)), the currentstate-of-charge (SOC) of battery 1506, a maximum battery power limit, amaximum power limit at POI 1510, the ramp rate limit, the grid frequencyof energy grid 1512, and/or other variables that can be used bycontroller 1514 to perform ramp rate control and/or frequencyregulation. Advantageously, controller 1514 generates values for u_(PV)and u_(bat) that maintain the ramp rate of the PV power within the ramprate compliance limit while participating in the regulation of gridfrequency and maintaining the SOC of battery 1506 within a predetermineddesirable range. An exemplary controller which can be used as controller1514 and exemplary processes which may be performed by controller 1514to generate the PV power setpoint u_(PV) and the battery power setpointu_(bat) are described in detail in U.S. Provisional Patent ApplicationNo. 62/239,245 filed Oct. 8, 2015, the entire disclosure of which isincorporated by reference herein.

Reactive Ramp Rate Control

Controller 1514 may be configured to control a ramp rate of the poweroutput 1516 provided to energy grid 1512. Ramp rate may be defined asthe time rate of change of power output 1516. Power output 1516 may varydepending on the magnitude of the DC output provided by PV field 1502.For example, if a cloud passes over PV field 1502, power output 1516 mayrapidly and temporarily drop while PV field 1502 is within the cloud'sshadow. Controller 1514 may be configured to calculate the ramp rate bysampling power output 1516 and determining a change in power output 1516over time. For example, controller 1514 may calculate the ramp rate asthe derivative or slope of power output 1516 as a function of time, asshown in the following equations:

${{Ramp}\mspace{14mu}{Rate}} = \frac{dP}{dt}$ or${{Ramp}\mspace{14mu}{Rate}} = \frac{\Delta P}{\Delta t}$

where P represents power output 1516 and t represents time.

In some embodiments, controller 1514 controls the ramp rate to complywith regulatory requirements or contractual requirements imposed byenergy grid 1512. For example, system 1500 may be required to maintainthe ramp rate within a predetermined range in order to deliver power toenergy grid 1512. In some embodiments, system 1500 is required tomaintain the absolute value of the ramp rate at less than a thresholdvalue (e.g., less than 10% of the rated power capacity per minute). Inother words, system 1500 may be required to prevent power output 1516from increasing or decreasing too rapidly. If this requirement is notmet, system 1500 may be deemed to be in non-compliance and its capacitymay be de-rated, which directly impacts the revenue generation potentialof system 1500.

Controller 1514 may use battery 1506 to perform ramp rate control. Forexample, controller 1514 may use energy from battery 1506 to smooth asudden drop in power output 1516 so that the absolute value of the ramprate is less than a threshold value. As previously mentioned, a suddendrop in power output 1516 may occur when a solar intensity disturbanceoccurs, such as a passing cloud blocking the sunlight to PV field 1502.Controller 1514 may use the energy from battery 1506 to make up thedifference between the power provided by PV field 1502 (which hassuddenly dropped) and the minimum required power output 1516 to maintainthe required ramp rate. The energy from battery 1506 allows controller1514 to gradually decrease power output 1516 so that the absolute valueof the ramp rate does not exceed the threshold value.

Once the cloud has passed, the power output from PV field 1502 maysuddenly increase as the solar intensity returns to its previous value.Controller 1514 may perform ramp rate control by gradually ramping uppower output 1516. Ramping up power output 1516 may not require energyfrom battery 1506. For example, power inverter 1504 may use only aportion of the energy generated by PV field 1502 (which has suddenlyincreased) to generate power output 1516 (i.e., limiting the poweroutput) so that the ramp rate of power output 1516 does not exceed thethreshold value. The remainder of the energy generated by PV field 1502(i.e., the excess energy) may be stored in battery 1506 and/ordissipated. Limiting the energy generated by PV field 1502 may includediverting or dissipating a portion of the energy generated by PV field1502 (e.g., using variable resistors or other circuit elements) so thatonly a portion of the energy generated by PV field 1502 is provided toenergy grid 1512. This allows power inverter 1504 to ramp up poweroutput 1516 gradually without exceeding the ramp rate. The excess energymay be stored in battery 1506, used to power other components of system1500, or dissipated.

Referring now to FIG. 17, a graph 1700 illustrating a reactive ramp ratecontrol technique which can be used by system 1500 is shown, accordingto an exemplary embodiment. Graph 1700 plots the power output P providedto energy grid 1512 as a function of time t. The solid line 1702illustrates power output P without any ramp rate control, whereas thebroken line 1704 illustrates power output P with ramp rate control.

Between times t₀ and t₁, power output P is at a high value P_(high). Attime t₁, a cloud begins to cast its shadow on PV field 1502, causing thepower output of PV field 1502 to suddenly decrease, until PV field 1502is completely in shadow at time t₂. Without any ramp rate control, thesudden drop in power output from PV field 1502 causes the power output Pto rapidly drop to a low value P_(low) at time t₂. However, with ramprate control, system 1500 uses energy from battery 1506 to graduallydecrease power output P to P_(low) at time t₃. Triangular region 1706represents the energy from battery 1506 used to gradually decrease poweroutput P.

Between times t₂ and t₄, PV field 1502 is completely in shadow. At timet₄, the shadow cast by the cloud begins to move off PV field 1502,causing the power output of PV field 1502 to suddenly increase, until PVfield 1502 is entirely in sunlight at time t₅. Without any ramp ratecontrol, the sudden increase in power output from PV field 1502 causesthe power output P to rapidly increase to the high value P_(high) attime t₅. However, with ramp rate control, power inverter 1504 limits theenergy from PV field 1502 to gradually increase power output P toP_(high) at time t₆. Triangular region 1708 represents the energygenerated by PV field 1502 in excess of the ramp rate limit. The excessenergy may be stored in battery 1506 and/or dissipated in order togradually increase power output P at a rate no greater than the maximumallowable ramp rate.

Notably, both triangular regions 1706 and 1708 begin after a change inthe power output of PV field 1502 occurs. As such, both the decreasingramp rate control and the increasing ramp rate control provided bysystem 1500 are reactionary processes triggered by a detected change inthe power output. In some embodiments, a feedback control technique isused to perform ramp rate control in system 1500. For example,controller 1514 may monitor power output 1516 and determine the absolutevalue of the time rate of change of power output 1516 (e.g., dP/dt orΔP/Δt). Controller 1514 may initiate ramp rate control when the absolutevalue of the time rate of change of power output 1516 exceeds athreshold value.

Preemptive Ramp Rate Control

In some embodiments, controller 1514 is configured to predict when solarintensity disturbances will occur and may cause power inverter 1504 toramp down the power output 1516 provided to energy grid 1512preemptively. Instead of reacting to solar intensity disturbances afterthey occur, controller 1514 can actively predict solar intensitydisturbances and preemptively ramp down power output 1516 before thedisturbances affect PV field 1502. Advantageously, this allows systemcontroller 1514 to perform both ramp down control and ramp up control byusing only a portion of the energy provided by PV field 1502 to generatepower output 1516 while the power output of PV field 1502 is still high,rather than relying on energy from a battery. The remainder of theenergy generated by PV field 1502 (i.e., the excess energy) may bestored in battery 1506 and/or dissipated.

In some embodiments, controller 1514 predicts solar intensitydisturbances using input from one or more cloud detectors. The clouddetectors may include an array of solar intensity sensors. The solarintensity sensors may be positioned outside PV field 1502 or within PVfield 1502. Each solar intensity sensor may have a known location. Insome embodiments, the locations of the solar intensity sensors are basedon the geometry and orientation of PV field 1502. For example, if PVfield 1502 is rectangular, more sensors may be placed along its longside than along its short side. A cloud formation moving perpendicularto the long side may cover more area of PV field 1502 per unit time thana cloud formation moving perpendicular to the short side. Therefore, itmay be desirable to include more sensors along the long side to moreprecisely detect cloud movement perpendicular to the long side. Asanother example, more sensors may be placed along the west side of PVfield 1502 than along the east side of PV field 1502 since cloudmovement from west to east is more common than cloud movement from eastto west. The placement of sensors may be selected to detect approachingcloud formations without requiring unnecessary or redundant sensors.

The solar intensity sensors may be configured to measure solar intensityat various locations outside PV field 1502. When the solar intensitymeasured by a particular solar intensity sensor drops below a thresholdvalue, controller 1514 may determine that a cloud is currently casting ashadow on the solar intensity sensor. Controller 1514 may use input frommultiple solar intensity sensors to determine various attributes ofclouds approaching PV field 1502 and/or the shadows produced by suchclouds. For example, if a shadow is cast upon two or more of the solarintensity sensors sequentially, controller 1514 may use the knownpositions of the solar intensity sensors and the time interval betweeneach solar intensity sensor detecting the shadow to determine how fastthe cloud/shadow is moving. If two or more of the solar intensitysensors are within the shadow simultaneously, controller 1514 may usethe known positions of the solar intensity sensors to determine aposition, size, and/or shape of the cloud/shadow.

Although the cloud detectors are described primarily as solar intensitysensors, it is contemplated that the cloud detectors may include anytype of device configured to detect the presence of clouds or shadowscast by clouds. For example, the cloud detectors may include one or morecameras that capture visual images of cloud movement. The cameras may beupward-oriented cameras located below the clouds (e.g., attached to astructure on the Earth) or downward-oriented cameras located above theclouds (e.g., satellite cameras). Images from the cameras may be used todetermine cloud size, position, velocity, and/or other cloud attributes.In some embodiments, the cloud detectors include radar or othermeteorological devices configured to detect the presence of clouds,cloud density, cloud velocity, and/or other cloud attributes. In someembodiments, controller 1514 receives data from a weather service thatindicates various cloud attributes.

Advantageously, controller 1514 may use the attributes of theclouds/shadows to determine when a solar intensity disturbance (e.g., ashadow) is approaching PV field 1502. For example, controller 1514 mayuse the attributes of the clouds/shadows to determine whether any of theclouds are expected to cast a shadow upon PV field 1502. If a cloud isexpected to cast a shadow upon PV field 1502, controller 1514 may usethe size, position, and/or velocity of the cloud/shadow to determine aportion of PV field 1502 that will be affected. The affected portion ofPV field 1502 may include some or all of PV field 1502. Controller 1514may use the attributes of the clouds/shadows to quantify a magnitude ofthe expected solar intensity disturbance (e.g., an expected decrease inpower output from PV field 1502) and to determine a time at which thedisturbance is expected to occur (e.g., a start time, an end time, aduration, etc.).

In some embodiments, controller 1514 predicts a magnitude of thedisturbance for each of a plurality of time steps. Controller 1514 mayuse the predicted magnitudes of the disturbance at each of the timesteps to generate a predicted disturbance profile. The predicteddisturbance profile may indicate how fast power output 1516 is expectedto change as a result of the disturbance. Controller 1514 may comparethe expected rate of change to a ramp rate threshold to determinewhether ramp rate control is required. For example, if power output 1516is predicted to decrease at a rate in excess of the maximum compliantramp rate, controller 1514 may preemptively implement ramp rate controlto gradually decrease power output 1516.

In some embodiments, controller 1514 identifies the minimum expectedvalue of power output 1516 and determines when the predicted poweroutput is expected to reach the minimum value. Controller 1514 maysubtract the minimum expected power output 1516 from the current poweroutput 1516 to determine an amount by which power output 1516 isexpected to decrease. Controller 1514 may apply the maximum allowableramp rate to the amount by which power output 1516 is expected todecrease to determine a minimum time required to ramp down power output1516 in order to comply with the maximum allowable ramp rate. Forexample, controller 1514 may divide the amount by which power output1516 is expected to decrease (e.g., measured in units of power) by themaximum allowable ramp rate (e.g., measured in units of power per unittime) to identify the minimum time required to ramp down power output1516. Controller 1514 may subtract the minimum required time from thetime at which the predicted power output is expected to reach theminimum value to determine when to start preemptively ramping down poweroutput 1516.

Advantageously, controller 1514 may preemptively act upon predicteddisturbances by causing power inverter 1504 to ramp down power output1516 before the disturbances affect PV field 1502. This allows powerinverter 1504 to ramp down power output 1516 by using only a portion ofthe energy generated by PV field 1502 to generate power output 1516(i.e., performing the ramp down while the power output is still high),rather than requiring additional energy from a battery (i.e., performingthe ramp down after the power output has decreased). The remainder ofthe energy generated by PV field 1502 (i.e., the excess energy) may bestored in battery 1506 and/or dissipated.

Referring now to FIG. 18, a graph 1800 illustrating a preemptive ramprate control technique which can be used by controller 1514 is shown,according to an exemplary embodiment. Graph 1800 plots the power outputP provided to energy grid 1512 as a function of time t. The solid line1802 illustrates power output P without any ramp rate control, whereasthe broken line 1804 illustrates power output P with preemptive ramprate control.

Between times t₀ and t₂, power output P is at a high value P_(high). Attime t₂, a cloud begins to cast its shadow on PV field 1502, causing thepower output of PV field 1502 to suddenly decrease, until PV field 1502is completely in shadow at time t₃. Without any ramp rate control, thesudden drop in power output from PV field 1502 causes the power output Pto rapidly drop from P_(high) to a low value P_(low) between times t₂and t₃. However, with preemptive ramp rate control, controller 1514preemptively causes power inverter 1504 to begin ramping down poweroutput P at time t₁, prior to the cloud casting a shadow on PV field1502. The preemptive ramp down occurs between times t₁ and t₃, resultingin a ramp rate that is relatively more gradual. Triangular region 1806represents the energy generated by PV field 1502 in excess of the ramprate limit. The excess energy may be limited by power inverter 1504and/or stored in battery 1506 to gradually decrease power output P at arate no greater than the ramp rate limit.

Between times t₃ and t₄, PV field 1502 is completely in shadow. At timet₄, the shadow cast by the cloud begins to move off PV field 1502,causing the power output of PV field 1502 to suddenly increase, until PVfield 1502 is entirely in sunlight at time t₅. Without any ramp ratecontrol, the sudden increase in power output from PV field 1502 causesthe power output P to rapidly increase to the high value P_(high) attime t₅. However, with ramp rate control, power inverter 1504 uses onlya portion of the energy from PV field 1502 to gradually increase poweroutput P to P_(high) at time t₆. Triangular region 1808 represents theenergy generated by PV field 1502 in excess of the ramp rate limit. Theexcess energy may be limited by power inverter 1504 and/or stored inbattery 1506 to gradually increase power output P at a rate no greaterthan the ramp rate limit.

Notably, a significant portion of triangular region 1806 occurs betweentimes t₁ and t₂, before the disturbance affects PV field 1502. As such,the decreasing ramp rate control provided by system 1500 is a preemptiveprocess triggered by detecting an approaching cloud, prior to the cloudcasting a shadow upon PV field 1502. In some embodiments, controller1514 uses a predictive control technique (e.g., feedforward control,model predictive control, etc.) to perform ramp down control in system1500. For example, controller 1514 may actively monitor the positions,sizes, velocities, and/or other attributes of clouds/shadows that couldpotentially cause a solar intensity disturbance affecting PV field 1502.When an approaching cloud is detected at time t₁, controller 1514 maypreemptively cause power inverter 1504 to begin ramping down poweroutput 1516. This allows power inverter 1504 to ramp down power output1516 by limiting the energy generated by PV field 1502 while the poweroutput is still high, rather than requiring additional energy from abattery to perform the ramp down once the power output has dropped.

Frequency Regulation and Ramp Rate Controller

Referring now to FIG. 19, a block diagram illustrating controller 1514in greater detail is shown, according to an exemplary embodiment.Controller 1514 is shown to include a communications interface 1902 anda processing circuit 1904. Communications interface 1902 may includewired or wireless interfaces (e.g., jacks, antennas, transmitters,receivers, transceivers, wire terminals, etc.) for conducting datacommunications with various systems, devices, or networks. For example,communications interface 1502 may include an Ethernet card and port forsending and receiving data via an Ethernet-based communications networkand/or a WiFi transceiver for communicating via a wirelesscommunications network. Communications interface 1902 may be configuredto communicate via local area networks or wide area networks (e.g., theInternet, a building WAN, etc.) and may use a variety of communicationsprotocols (e.g., BACnet, IP, LON, etc.).

Communications interface 1902 may be a network interface configured tofacilitate electronic data communications between controller 1514 andvarious external systems or devices (e.g., PV field 1502, energy grid1512, PV field power inverter 1504, battery power inverter 1508, etc.).For example, controller 1514 may receive a PV power signal from PV field1502 indicating the current value of the PV power P_(PV) generated by PVfield 1502. Controller 1514 may use the PV power signal to predict oneor more future values for the PV power P_(PV) and generate a ramp ratesetpoint u_(RR). Controller 1514 may receive a grid frequency signalfrom energy grid 1512 indicating the current value of the gridfrequency. Controller 1514 may use the grid frequency to generate afrequency regulation setpoint u_(FR). Controller 1514 may use the ramprate setpoint u_(RR) and the frequency regulation setpoint u_(FR) togenerate a battery power setpoint u_(bat) and may provide the batterypower setpoint u_(bat) to battery power inverter 1508. Controller 1514may use the battery power setpoint u_(bat) to generate a PV powersetpoint u_(PV) and may provide the PV power setpoint u_(PV) to PV fieldpower inverter 1504.

Still referring to FIG. 19, processing circuit 1904 is shown to includea processor 1906 and memory 1908. Processor 1906 may be a generalpurpose or specific purpose processor, an application specificintegrated circuit (ASIC), one or more field programmable gate arrays(FPGAs), a group of processing components, or other suitable processingcomponents. Processor 1906 may be configured to execute computer code orinstructions stored in memory 1908 or received from other computerreadable media (e.g., CDROM, network storage, a remote server, etc.).

Memory 1908 may include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 1908 may include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory1908 may include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 1908 may be communicably connected toprocessor 1906 via processing circuit 1904 and may include computer codefor executing (e.g., by processor 1906) one or more processes describedherein.

Predicting PV Power Output

Still referring to FIG. 19, controller 1514 is shown to include a PVpower predictor 1912. PV power predictor 1912 may receive the PV powersignal from PV field 1502 and use the PV power signal to make a shortterm prediction of the photovoltaic power output P_(PV). In someembodiments, PV power predictor 1912 predicts the value of P_(PV) forthe next time step (i.e., a one step ahead prediction). For example, ateach time step k, PV power predictor 1912 may predict the value of thePV power output P_(PV) for the next time step k+1 (i.e., {circumflexover (P)}_(PV)(k+1)). Advantageously, predicting the next value for thePV power output P_(PV) allows controller 1514 to predict the ramp rateand perform an appropriate control action to prevent the ramp rate fromexceeding the ramp rate compliance limit.

In some embodiments, PV power predictor 1912 performs a time seriesanalysis to predict {circumflex over (P)}_(PV)(k+1). A time series maybe defined by an ordered sequence of values of a variable at equallyspaced intervals. PV power predictor 1912 may model changes betweenvalues of P_(PV) over time using an autoregressive moving average (ARMA)model or an autoregressive integrated moving average (ARIMA) model. PVpower predictor 1912 may use the model to predict the next value of thePV power output P_(PV) and correct the prediction using a Kalman filtereach time a new measurement is acquired. The time series analysistechnique is described in greater detail in the following paragraphs.

In some embodiments, PV power predictor 1912 uses a technique in theBox-Jenkins family of techniques to perform the time series analysis.These techniques are statistical tools that use past data (e.g., lags)to predict or correct new data, and other techniques to find theparameters or coefficients of the time series. A general representationof a time series from the Box-Jenkins approach is:

${X_{k} - {\sum\limits_{r = 1}^{p}{\varphi_{r}X_{k - r}}}} = {\sum\limits_{s = 0}^{q}{\theta_{s}\epsilon_{k - s}}}$

which is known as an ARMA process. In this representation, theparameters p and q define the order and number of lags of the timeseries, φ is an autoregressive parameter, and θ is a moving averageparameter. This representation is desirable for a stationary processwhich has a mean, variance, and autocorrelation structure that does notchange over time. However, if the original process {Y_(k)} representingthe time series values of P_(PV) is not stationary, X_(k) can representthe first difference (or higher order difference) of the process{Y_(k)−Y_(k-1)}. If the difference is stationary, PV power predictor1912 may model the process as an ARIMA process.

PV power predictor 1912 may be configured to determine whether to use anARMA model or an ARIMA model to model the time series of the PV poweroutput P_(PV). Determining whether to use an ARMA model or an ARIMAmodel may include identifying whether the process is stationary. In someembodiments, the power output P_(PV) is not stationary. However, thefirst difference Y_(k)−Y_(k-1) may be stationary. Accordingly, PV powerpredictor 1912 may select an ARIMA model to represent the time series ofP_(PV).

PV power predictor 1912 may find values for the parameters p and q thatdefine the order and the number of lags of the time series. In someembodiments, PV power predictor 1912 finds values for p and q bychecking the partial autocorrelation function (PACF) and selecting anumber where the PACF approaches zero (e.g., p=q). For some time seriesdata, PV power predictor 1912 may determine that a 4^(th) or 5^(th)order model is appropriate. However, it is contemplated that PV powerpredictor 1912 may select a different model order to represent differenttime series processes.

PV power predictor 1912 may find values for the autoregressive parameterφ_(1 . . . p) and the moving average parameter θ_(1 . . . q). In someembodiments, PV power predictor 1912 uses an optimization algorithm tofind values for φ_(1 . . . p) and θ_(1 . . . q) given the time seriesdata {Y_(k)}. For example, PV power predictor 1912 may generate adiscrete-time ARIMA model of the form:

${{A(z)}{y(k)}} = {\left\lbrack \frac{C(z)}{1 - z^{- 1}} \right\rbrack{e(t)}}$

where A(z) and C(z) are defined as follows:

A(z) = 1 + φ₁z⁻¹ + φ₂z⁻² + φ₃z⁻³ + φ₄z⁻⁴C(z) = 1 + θ₁z⁻¹ + θ₂z⁻² + θ₃z⁻³ + θ₄z⁻⁴

where the values for φ_(1 . . . p) and θ_(1 . . . q) are determined byfitting the model to the time series values of P_(PV).

In some embodiments, PV power predictor 1912 uses the ARIMA model as anelement of a Kalman filter. The Kalman filter may be used by PV powerpredictor 1912 to correct the estimated state and provide tighterpredictions based on actual values of the PV power output P_(PV). Inorder to use the ARIMA model with the Kalman filter, PV power predictor1912 may generate a discrete-time state-space representation of theARIMA model of the form:

x(k + 1) = Ax(k) + Ke(k) y(k) = Cx(k) + e(k)

where y(k) represents the values of the PV power output P_(PV) and e(k)is a disturbance considered to be normal with zero mean and a variancederived from the fitted model. It is contemplated that the state-spacemodel can be represented in a variety of different forms. For example,the ARIMA model can be rewritten as a difference equation and used togenerate a different state-space model using state-space modelingtechniques. In various embodiments, PV power predictor 1912 may use anyof a variety of different forms of the state-space model.

The discrete Kalman filter consists of an iterative process that takes astate-space model and forwards it in time until there are available datato correct the predicted state and obtain a better estimate. Thecorrection may be based on the evolution of the mean and covariance ofan assumed white noise system. For example, PV power predictor 1912 mayuse a state-space model of the following form:

x(k + 1) = Ax(k) + Bu(k) + w(k)  w(k) ∼ N(0, Q)y(k) = Cx(k) + Du(k) + v(k)  v(k) ∼ N(0, R)

where N( ) represents a normal distribution, v(k) is the measurementerror having zero mean and variance R, and w(k) is the process errorhaving zero mean and variance Q. The values of R and Q are designchoices. The variable x(k) is a state of the process and the variabley(k) represents the PV power output P_(PV)(k). This representation isreferred to as a stochastic state-space representation.

PV power predictor 1912 may use the Kalman filter to perform aniterative process to predict {circumflex over (P)}_(PV)(k+1) based onthe current and previous values of P_(PV) (e.g., P_(PV)(k), P_(PV)(k−1),etc.). The iterative process may include a prediction step and an updatestep. The prediction step moves the state estimate forward in time usingthe following equations:

x̂⁻(k + 1) = A * x̂(k) P⁻(k + 1) = A * P(k) * A^(T) + Q

where {circumflex over (x)}(k) is the mean of the process or estimatedstate at time step k and P(k) is the covariance of the process at timestep k. The super index “−” indicates that the estimated state{circumflex over (x)}⁻(k+1) is based on the information known prior totime step k+1 (i.e., information up to time step k). In other words, themeasurements at time step k+1 have not yet been incorporated to generatethe state estimate {circumflex over (x)}⁻(k+1). This is known as an apriori state estimate.

PV power predictor 1912 may predict the PV power output {circumflex over(P)}_(PV)(k+1) by determining the value of the predicted measurementŷ⁻(k+1). As previously described, the measurement y(k) and the statex(k) are related by the following equation:

y(k) = Cx(k) + e(k)

which allows PV power predictor 1912 to predict the measurement ŷ⁻(k+1)as a function of the predicted state {circumflex over (x)}⁻(k+1). PVpower predictor 1912 may use the measurement estimate ŷ⁻(k+1) as thevalue for the predicted PV power output {circumflex over (P)}_(PV)(k+1)(i.e., {circumflex over (P)}_(PV)(k+1)=ŷ⁻(k+1)).

The update step uses the following equations to correct the a prioristate estimate {circumflex over (x)}⁻(k+1) based on the actual(measured) value of y(k+1):

K = P⁻(k + 1) * C^(T) * [R + C * P⁻(k + 1) * C^(T)]⁻¹x̂(k + 1) = x̂⁻(k + 1) + K * [y(k + 1) − C * x̂⁻(k + 1)]P(k + 1) = P⁻(k + 1) − K * [R + C * P⁻(k + 1) * C^(T)] * K^(T)

where y(k+1) corresponds to the actual measured value of P_(PV)(k+1).The variable {circumflex over (x)}(k+1) represents the a posterioriestimate of the state x at time k+1 given the information known up totime step k+1. The update step allows PV power predictor 1912 to preparethe Kalman filter for the next iteration of the prediction step.

Although PV power predictor 1912 is primarily described as using a timeseries analysis to predict {circumflex over (P)}_(PV)(k+1), it iscontemplated that PV power predictor 1912 may use any of a variety oftechniques to predict the next value of the PV power output P_(PV). Forexample, PV power predictor 1912 may use a deterministic plus stochasticmodel trained from historical PV power output values (e.g., linearregression for the deterministic portion and an AR model for thestochastic portion). This technique is described in greater detail inU.S. patent application Ser. No. 14/717,593, titled “Building ManagementSystem for Forecasting Time Series Values of Building Variables” andfiled May 20, 2015, the entirety of which is incorporated by referenceherein.

In other embodiments, PV power predictor 1912 uses input from clouddetectors (e.g., cameras, light intensity sensors, radar, etc.) topredict when an approaching cloud will cast a shadow upon PV field 1502.When an approaching cloud is detected, PV power predictor 1912 mayestimate an amount by which the solar intensity will decrease as aresult of the shadow and/or increase once the shadow has passed PV field1502. PV power predictor 1912 may use the predicted change in solarintensity to predict a corresponding change in the PV power outputP_(PV). This technique is described in greater detail in U.S.Provisional Patent Application No. 62/239,131 titled “Systems andMethods for Controlling Ramp Rate in a Photovoltaic Energy System” andfiled Oct. 8, 2015, the entirety of which is incorporated by referenceherein. PV power predictor 1912 may provide the predicted PV poweroutput {circumflex over (P)}_(PV)(k+1) to ramp rate controller 1914.

Controlling Ramp Rate

Still referring to FIG. 19, controller 1514 is shown to include a ramprate controller 1914. Ramp rate controller 1914 may be configured todetermine an amount of power to charge or discharge from battery 1506for ramp rate control (i.e., u_(RR)). Advantageously, ramp ratecontroller 1914 may determine a value for the ramp rate power u_(RR)that simultaneously maintains the ramp rate of the PV power (i.e.,u_(RR)+P_(PV)) within compliance limits while allowing controller 1514to regulate the frequency of energy grid 1512 and while maintaining thestate-of-charge of battery 1506 within a predetermined desirable range.

In some embodiments, the ramp rate of the PV power is within compliancelimits as long as the actual ramp rate evaluated over a one minuteinterval does not exceed ten percent of the rated capacity of PV field1502. The actual ramp rate may be evaluated over shorter intervals(e.g., two seconds) and scaled up to a one minute interval. Therefore, aramp rate may be within compliance limits if the ramp rate satisfies oneor more of the following inequalities:

${{rr}} < {\frac{0.1P_{cap}}{30}\left( {1 + {tolerance}} \right)}$RR < 0.1P_(cap)(1 + tolerance)

where rr is the ramp rate calculated over a two second interval, RR isthe ramp rate calculated over a one minute interval, P_(cap) is therated capacity of PV field 1502, and tolerance is an amount by which theactual ramp rate can exceed the compliance limit without resulting in anon-compliance violation (e.g., tolerance=10%). In this formulation, theramp rates rr and RR represent a difference in the PV power (e.g.,measured in kW) at the beginning and end of the ramp rate evaluationinterval.

Simultaneous implementation of ramp rate control and frequencyregulation can be challenging (e.g., can result in non-compliance),especially if the ramp rate is calculated as the difference in the powerP_(POI) at POI 1510. In some embodiments, the ramp rate over a twosecond interval is defined as follows:

rr = [P_(POI)(k) − P_(POI)(k − 1)] − [u_(FR)(k) − u_(FR)(k − 1)]

where P_(POI)(k−1) and P_(POI)(k) are the total powers at POI 1510measured at the beginning and end, respectively, of a two secondinterval, and u_(FR)(k−1) and u_(FR)(k) are the powers used forfrequency regulation measured at the beginning and end, respectively, ofthe two second interval.

The total power at POI 1510 (i.e., P_(POI)) is the sum of the poweroutput of PV field power inverter 1504 (i.e., u_(PV)) and the poweroutput of battery power inverter 1508 (i.e., u_(bat)=u_(FR)+u_(RR)).Assuming that PV field power inverter 1504 is not limiting the powerP_(PV) generated by PV field 1502, the output of PV field power inverter1504 u_(PV) may be equal to the PV power output P_(PV) (i.e.,P_(PV)=u_(PV)) and the total power P_(POI) at POI 1510 can be calculatedusing the following equation:

P_(POI) = P_(PV) + u_(FR) + u_(RR)

Therefore, the ramp rate rr can be rewritten as:

rr = P_(PV)(k) − P_(PV)(k − 1) + u_(RR)(k) − u_(RR)(k − 1)

and the inequality which must be satisfied to comply with the ramp ratelimit can be rewritten as:

${{{P_{PV}(k)} - {P_{PV}\left( {k - 1} \right)} + {u_{RR}(k)} - {u_{RR}\left( {k - 1} \right)}}} < {\frac{0.1P_{cap}}{30}\left( {1 + {tolerance}} \right)}$

where P_(PV)(k−1) and P_(PV)(k) are the power outputs of PV field 1502measured at the beginning and end, respectively, of the two secondinterval, and u_(RR)(k−1) and u_(RR) (k) are the powers used for ramprate control measured at the beginning and end, respectively, of the twosecond interval.

In some embodiments, ramp rate controller 1914 determines the ramp ratecompliance of a facility based on the number of scans (i.e., monitoredintervals) in violation that occur within a predetermined time period(e.g., one week) and the total number of scans that occur during thepredetermined time period. For example, the ramp rate compliance RRC maybe defined as a percentage and calculated as follows:

${RRC} = {100\left( {1 - \frac{n_{vscan}}{n_{tscan}}} \right)}$

where n_(vscan) is the number of scans over the predetermined timeperiod where rr is in violation and n_(tscan) is the total number ofscans during which the facility is performing ramp rate control duringthe predetermined time period.

In some embodiments, the intervals that are monitored or scanned todetermine ramp rate compliance are selected arbitrarily or randomly(e.g., by a power utility). Therefore, it may be impossible to predictwhich intervals will be monitored. Additionally, the start times and endtimes of the intervals may be unknown. In order to guarantee ramp ratecompliance and minimize the number of scans where the ramp rate is inviolation, ramp rate controller 1914 may determine the amount of poweru_(RR) used for ramp rate control ahead of time. In other words, ramprate controller 1914 may determine, at each instant, the amount of poweru_(RR) to be used for ramp rate control at the next instant. Since thestart and end times of the intervals may be unknown, ramp ratecontroller 1914 may perform ramp rate control at smaller time intervals(e.g., on the order of milliseconds).

Ramp rate controller 1914 may use the predicted PV power {circumflexover (P)}_(PV)(k+1) at instant k 1 and the current PV power P_(PV)(k) atinstant k to determine the ramp rate control power û_(RR) _(T) (k) atinstant k. Advantageously, this allows ramp rate controller 1914 todetermine whether the PV power P_(PV) is in an up-ramp, a down-ramp, orno-ramp at instant k. Assuming a T seconds time resolution, ramp ratecontroller 1914 may determine the value of the power for ramp ratecontrol û_(RR) _(T) (k) at instant k based on the predicted value of thePV power {circumflex over (P)}_(PV)(k+1), the current value of the PVpower P_(PV)(k), and the previous power used for ramp rate controlû_(RR) _(T) (k−1). Scaling to T seconds and assuming a tolerance ofzero, ramp rate compliance is guaranteed if û_(RR) _(T) (k) satisfiesthe following inequality:

lb_(RR_(T)) ≤ û_(RR_(T)) ≤ ub_(RR_(T))

where T is the sampling time in seconds, lb_(RR) _(T) is the lower boundon û_(RR) _(T) (k), and ub_(RR) _(T) is the upper bound on û_(RR) _(T)(k).

In some embodiments, the lower bound lb_(RR) _(T) and the upper boundub_(RR) _(T) are defined as follows:

${lb}_{{RR}_{T}} = {{- \left( {{{\hat{P}}_{PV}\left( {k + 1} \right)} - {P_{PV}(k)}} \right)} + {{\hat{u}}_{{RR}_{T}}\left( {k - 1} \right)} - \frac{0.1P_{cap}}{60/T} + {\lambda\sigma}}$${ub}_{{RR}_{T}} = {{- \left( {{{\hat{P}}_{PV}\left( {k + 1} \right)} - {P_{PV}(k)}} \right)} + {{\hat{u}}_{{RR}_{T}}\left( {k - 1} \right)} + \frac{0.1P_{cap}}{60/T} - {\lambda\sigma}}$

where σ is the uncertainty on the PV power prediction and λ is a scalingfactor of the uncertainty in the PV power prediction. Advantageously,the lower bound lb_(RR) _(T) and the upper bound ub_(RR) _(T) provide arange of ramp rate power û_(RR) _(T) (k) that guarantees compliance ofthe rate of change in the PV power.

In some embodiments, ramp rate controller 1914 determines the ramp ratepower û_(RR) _(T) (k) based on whether the PV power P_(PV) is in anup-ramp, a down-ramp, or no-ramp (e.g., the PV power is not changing orchanging at a compliant rate) at instant k. Ramp rate controller 1914may also consider the state-of-charge (SOC) of battery 1506 whendetermining û_(RR) _(T) (k) Exemplary processes which may be performedby ramp rate controller 1914 to generate values for the ramp rate powerû_(RR) _(T) (k) are described in detail in U.S. Patent Application No.62/239,245. Ramp rate controller 1914 may provide the ramp rate powersetpoint û_(RR) _(T) (k) to battery power setpoint generator 1918 foruse in determining the battery power setpoint u_(bat).

Controlling Frequency Regulation

Referring again to FIG. 19, controller 1514 is shown to include afrequency regulation controller 1916. Frequency regulation controller1916 may be configured to determine an amount of power to charge ordischarge from battery 1506 for frequency regulation (i.e., u_(FR)).Frequency regulation controller 1916 is shown receiving a grid frequencysignal from energy grid 1512. The grid frequency signal may specify thecurrent grid frequency f_(grid) of energy grid 1512. In someembodiments, the grid frequency signal also includes a scheduled ordesired grid frequency f_(s) to be achieved by performing frequencyregulation. Frequency regulation controller 1916 may determine thefrequency regulation setpoint u_(FR) based on the difference between thecurrent grid frequency f_(grid) and the scheduled frequency f_(s).

In some embodiments, the range within which the grid frequency f_(grid)is allowed to fluctuate is determined by an electric utility. Anyfrequencies falling outside the permissible range may be corrected byperforming frequency regulation. Facilities participating in frequencyregulation may be required to supply or consume a contracted power forpurposes of regulating grid frequency f_(grid) (e.g., up to 10% of therated capacity of PV field 1502 per frequency regulation event).

In some embodiments, frequency regulation controller 1916 performsfrequency regulation using a dead-band control technique with a gainthat is dependent upon the difference f_(e) between the scheduled gridfrequency f_(s) and the actual grid frequency f_(grid) (i.e.,f_(e)=f_(s)−f_(grid)) and an amount of power required for regulating agiven deviation amount of frequency error f_(e). Such a controltechnique is expressed mathematically by the following equation:

u_(FR)(k) = min (max (lb_(FR), α), ub_(FR))

where lb_(FR) and ub_(FR) are the contracted amounts of power up towhich power is to be consumed or supplied by a facility. lb_(FR) andub_(FR) may be based on the rated capacity P_(cap) of PV field 1502 asshown in the following equations:

lb_(FR) = −0.1 × P_(cap) ub_(FR) = 0.1 × P_(cap)

The variable α represents the required amount of power to be supplied orconsumed from energy grid 1512 to offset the frequency error f_(e). Insome embodiments, frequency regulation controller 1916 calculates αusing the following equation:

α = K_(FR) × sign(f_(e)) × max (|f_(e)|−d_(band), 0)

where d_(band) is the threshold beyond which a deviation in gridfrequency must be regulated and K_(FR) is the control gain. In someembodiments, frequency regulation controller 1916 calculates the controlgain K_(FR) as follows:

$K_{FR} = \frac{P_{cap}}{0.01 \times {droop} \times f_{s}}$

where droop is a parameter specifying a percentage that defines how muchpower must be supplied or consumed to offset a 1 Hz deviation in thegrid frequency. Frequency regulation controller 1916 may calculate thefrequency regulation setpoint u_(FR) using these equations and mayprovide the frequency regulation setpoint to battery power setpointgenerator 1918.

Generating Battery Power Setpoints

Still referring to FIG. 19, controller 1514 is shown to include abattery power setpoint generator 1918. Battery power setpoint generator1918 may be configured to generate the battery power setpoint u_(bat)for battery power inverter 1508. The battery power setpoint u_(bat) isused by battery power inverter 1508 to control an amount of power drawnfrom battery 1506 or stored in battery 1506. For example, battery powerinverter 1508 may draw power from battery 1506 in response to receivinga positive battery power setpoint u_(bat) from battery power setpointgenerator 1918 and may store power in battery 1506 in response toreceiving a negative battery power setpoint u_(bat) from battery powersetpoint generator 1918.

Battery power setpoint generator 1918 is shown receiving the ramp ratepower setpoint u_(RR) from ramp rate controller 1914 and the frequencyregulation power setpoint u_(FR) from frequency regulation controller1916. In some embodiments, battery power setpoint generator 1918calculates a value for the battery power setpoint u_(bat) by adding theramp rate power setpoint u_(RR) and the frequency response powersetpoint u_(FR). For example, battery power setpoint generator 1918 maycalculate the battery power setpoint u_(bat) using the followingequation:

u_(bat) = u_(RR) + U_(FR)

In some embodiments, battery power setpoint generator 1918 adjusts thebattery power setpoint u_(bat) based on a battery power limit forbattery 1506. For example, battery power setpoint generator 1918 maycompare the battery power setpoint u_(bat) with the battery power limitbattPowerLimit. If the battery power setpoint is greater than thebattery power limit (i.e., u_(bat)>battPowerLimit), battery powersetpoint generator 1918 may replace the battery power setpoint u_(bat)with the battery power limit. Similarly, if the battery power setpointis less than the negative of the battery power limit (i.e.,u_(bat)<−battPowerLimit), battery power setpoint generator 1918 mayreplace the battery power setpoint u_(bat) with the negative of thebattery power limit.

In some embodiments, battery power setpoint generator 1918 causesfrequency regulation controller 1916 to update the frequency regulationsetpoint u_(FR) in response to replacing the battery power setpointu_(bat) with the battery power limit battPowerLimit or the negative ofthe battery power limit −battPowerLimit. For example, if the batterypower setpoint u_(bat) is replaced with the positive battery power limitbattPowerLimit, frequency regulation controller 1916 may update thefrequency regulation setpoint u_(FR) using the following equation:

u_(FR)(k) = battPowerLimit − û_(RR_(T))(k)

Similarly, if the battery power setpoint u_(bat) is replaced with thenegative battery power limit −battPowerLimit, frequency regulationcontroller 1916 may update the frequency regulation setpoint u_(FR)using the following equation:

u_(FR)(k) = −battPowerLimit − û_(RR_(T))(k)

These updates ensure that the amount of power used for ramp rate controlû_(RR) _(T) (k) and the amount of power used for frequency regulationu_(FR)(k) can be added together to calculate the battery power setpointu_(bat). Battery power setpoint generator 1918 may provide the batterypower setpoint u_(bat) to battery power inverter 1508 and to PV powersetpoint generator 1920.

Generating PV Power Setpoints

Still referring to FIG. 19, controller 1514 is shown to include a PVpower setpoint generator 1920. PV power setpoint generator 1920 may beconfigured to generate the PV power setpoint u_(PV) for PV field powerinverter 1504. The PV power setpoint u_(PV) is used by PV field powerinverter 1504 to control an amount of power from PV field 1502 toprovide to POI 1510.

In some embodiments, PV power setpoint generator 1920 sets a default PVpower setpoint u_(PV)(k) for instant k based on the previous value ofthe PV power P_(PV)(k−1) at instant k−1. For example, PV power setpointgenerator 1920 may increment the previous PV power P_(PV)(k−1) with thecompliance limit as shown in the following equation:

${u_{PV}(k)} = {{P_{PV}\left( {k - 1} \right)} + \frac{0.1P_{cap}}{60/T} - {\lambda\sigma}}$

This guarantees compliance with the ramp rate compliance limit andgradual ramping of the PV power output to energy grid 1512. The defaultPV power setpoint may be useful to guarantee ramp rate compliance whenthe system is turned on, for example, in the middle of a sunny day orwhen an up-ramp in the PV power output P_(PV) is to be handled bylimiting the PV power at PV power inverter 1504 instead of chargingbattery 1506.

In some embodiments, PV power setpoint generator 1920 updates the PVpower setpoint u_(PV)(k) based on the value of the battery powersetpoint u_(bat)(k) so that the total power provided to POI 1510 doesnot exceed a POI power limit. For example, PV power setpoint generator1920 may use the PV power setpoint u_(PV) (k) and the battery powersetpoint u_(bat)(k) to calculate the total power P_(POI)(k) at point ofintersection 1510 using the following equation:

P_(POI)(k) = u_(bat)(k) + u_(PV)(k)

PV power setpoint generator 1920 may compare the calculated powerP_(POI)(k) with a power limit for POI 1510 (i.e., POIPowerLimit). If thecalculated power P_(POI)(k) exceeds the POI power limit (i.e.,P_(POI)(k)>POIPowerLimit), PV power setpoint generator 1920 may replacethe calculated power P_(POI) (k) with the POI power limit. PV powersetpoint generator 1920 may update the PV power setpoint u_(PV) (k)using the following equation:

u_(PV)(k) = POIPowerLimit − u_(bat)(k)

This ensures that the total power provided to POI 1510 does not exceedthe POI power limit by causing PV field power inverter 1504 to limit thePV power. PV power setpoint generator 1920 may provide the PV powersetpoint u_(PV) to PV field power inverter 1504.

Electrical Energy Storage System With Frequency Response Optimization

Referring now to FIG. 20, a frequency response optimization system 2000is shown, according to an exemplary embodiment. System 2000 is shown toinclude a campus 2002 and an energy grid 2004. Campus 2002 may includeone or more buildings 2016 that receive power from energy grid 2004.Buildings 2016 may include equipment or devices that consume electricityduring operation. For example, buildings 2016 may include HVACequipment, lighting equipment, security equipment, communicationsequipment, vending machines, computers, electronics, elevators, or othertypes of building equipment. In some embodiments, buildings 2016 areserved by a building management system (BMS). A BMS is, in general, asystem of devices configured to control, monitor, and manage equipmentin or around a building or building area. A BMS can include, forexample, a HVAC system, a security system, a lighting system, a firealerting system, and/or any other system that is capable of managingbuilding functions or devices. An exemplary building management systemwhich may be used to monitor and control buildings 2016 is described inU.S. patent application Ser. No. 14/717,593.

In some embodiments, campus 2002 includes a central plant 2018. Centralplant 2018 may include one or more subplants that consume resources fromutilities (e.g., water, natural gas, electricity, etc.) to satisfy theloads of buildings 2016. For example, central plant 2018 may include aheater subplant, a heat recovery chiller subplant, a chiller subplant, acooling tower subplant, a hot thermal energy storage (TES) subplant, anda cold thermal energy storage (TES) subplant, a steam subplant, and/orany other type of subplant configured to serve buildings 2016. Thesubplants may be configured to convert input resources (e.g.,electricity, water, natural gas, etc.) into output resources (e.g., coldwater, hot water, chilled air, heated air, etc.) that are provided tobuildings 2016. An exemplary central plant which may be used to satisfythe loads of buildings 2016 is described U.S. patent application Ser.No. 14/634,609, titled “High Level Central Plant Optimization” and filedFeb. 27, 2015, the entire disclosure of which is incorporated byreference herein.

In some embodiments, campus 2002 includes energy generation 2020. Energygeneration 2020 may be configured to generate energy that can be used bybuildings 2016, used by central plant 2018, and/or provided to energygrid 2004. In some embodiments, energy generation 2020 generateselectricity. For example, energy generation 2020 may include an electricpower plant, a photovoltaic energy field, or other types of systems ordevices that generate electricity. The electricity generated by energygeneration 2020 can be used internally by campus 2002 (e.g., bybuildings 2016 and/or campus 2018) to decrease the amount of electricpower that campus 2002 receives from outside sources such as energy grid2004 or battery 2008. If the amount of electricity generated by energygeneration 2020 exceeds the electric power demand of campus 2002, theexcess electric power can be provided to energy grid 2004 or stored inbattery 2008. The power output of campus 2002 is shown in FIG. 20 asP_(campus). P_(campus) may be positive if campus 2002 is outputtingelectric power or negative if campus 2002 is receiving electric power.

Still referring to FIG. 20, system 2000 is shown to include a powerinverter 2006 and a battery 2008. Power inverter 2006 may be configuredto convert electric power between direct current (DC) and alternatingcurrent (AC). For example, battery 2008 may be configured to store andoutput DC power, whereas energy grid 2004 and campus 2002 may beconfigured to consume and generate AC power. Power inverter 2006 may beused to convert DC power from battery 2008 into a sinusoidal AC outputsynchronized to the grid frequency of energy grid 2004. Power inverter2006 may also be used to convert AC power from campus 2002 or energygrid 2004 into DC power that can be stored in battery 2008. The poweroutput of battery 2008 is shown as P_(bat). P_(bat) may be positive ifbattery 2008 is providing power to power inverter 2006 or negative ifbattery 2008 is receiving power from power inverter 2006.

In some instances, power inverter 2006 receives a DC power output frombattery 2008 and converts the DC power output to an AC power output thatcan be fed into energy grid 2004. Power inverter 2006 may synchronizethe frequency of the AC power output with that of energy grid 2004(e.g., 50 Hz or 60 Hz) using a local oscillator and may limit thevoltage of the AC power output to no higher than the grid voltage. Insome embodiments, power inverter 2006 is a resonant inverter thatincludes or uses LC circuits to remove the harmonics from a simplesquare wave in order to achieve a sine wave matching the frequency ofenergy grid 2004. In various embodiments, power inverter 2006 mayoperate using high-frequency transformers, low-frequency transformers,or without transformers. Low-frequency transformers may convert the DCoutput from battery 2008 directly to the AC output provided to energygrid 2004. High-frequency transformers may employ a multi-step processthat involves converting the DC output to high-frequency AC, then backto DC, and then finally to the AC output provided to energy grid 2004.

System 2000 is shown to include a point of interconnection (POI) 2010.POI 2010 is the point at which campus 2002, energy grid 2004, and powerinverter 2006 are electrically connected. The power supplied to POI 2010from power inverter 2006 is shown as P_(sup). P_(sup) may be defined asP_(bat)+P_(loss), where P_(batt) is the battery power and P_(loss) isthe power loss in the battery system (e.g., losses in power inverter2006 and/or battery 2008). P_(sup) may be positive is power inverter2006 is providing power to POI 2010 or negative if power inverter 2006is receiving power from POI 2010. P_(campus) and P_(sup) combine at POI2010 to form P_(POI). P_(POI) may be defined as the power provided toenergy grid 2004 from POI 2010. P_(POI) may be positive if POI 2010 isproviding power to energy grid 2004 or negative if POI 2010 is receivingpower from energy grid 2004.

Still referring to FIG. 20, system 2000 is shown to include a frequencyresponse controller 2012. Controller 2012 may be configured to generateand provide power setpoints to power inverter 2006. Power inverter 2006may use the power setpoints to control the amount of power P_(sup)provided to POI 2010 or drawn from POI 2010. For example, power inverter2006 may be configured to draw power from POI 2010 and store the powerin battery 2008 in response to receiving a negative power setpoint fromcontroller 2012. Conversely, power inverter 2006 may be configured todraw power from battery 2008 and provide the power to POI 2010 inresponse to receiving a positive power setpoint from controller 2012.The magnitude of the power setpoint may define the amount of powerP_(sup) provided to or from power inverter 2006. Controller 2012 may beconfigured to generate and provide power setpoints that optimize thevalue of operating system 2000 over a time horizon.

In some embodiments, frequency response controller 2012 uses powerinverter 2006 and battery 2008 to perform frequency regulation forenergy grid 2004. Frequency regulation is the process of maintaining thestability of the grid frequency (e.g., 60 Hz in the United States). Thegrid frequency may remain stable and balanced as long as the totalelectric supply and demand of energy grid 2004 are balanced. Anydeviation from that balance may result in a deviation of the gridfrequency from its desirable value. For example, an increase in demandmay cause the grid frequency to decrease, whereas an increase in supplymay cause the grid frequency to increase. Frequency response controller2012 may be configured to offset a fluctuation in the grid frequency bycausing power inverter 2006 to supply energy from battery 2008 to energygrid 2004 (e.g., to offset a decrease in grid frequency) or store energyfrom energy grid 2004 in battery 2008 (e.g., to offset an increase ingrid frequency).

In some embodiments, frequency response controller 2012 uses powerinverter 2006 and battery 2008 to perform load shifting for campus 2002.For example, controller 2012 may cause power inverter 2006 to storeenergy in battery 2008 when energy prices are low and retrieve energyfrom battery 2008 when energy prices are high in order to reduce thecost of electricity required to power campus 2002. Load shifting mayalso allow system 2000 reduce the demand charge incurred. Demand chargeis an additional charge imposed by some utility providers based on themaximum power consumption during an applicable demand charge period. Forexample, a demand charge rate may be specified in terms of dollars perunit of power (e.g., $/kW) and may be multiplied by the peak power usage(e.g., kW) during a demand charge period to calculate the demand charge.Load shifting may allow system 2000 to smooth momentary spikes in theelectric demand of campus 2002 by drawing energy from battery 2008 inorder to reduce peak power draw from energy grid 2004, therebydecreasing the demand charge incurred.

Still referring to FIG. 20, system 2000 is shown to include an incentiveprovider 2014. Incentive provider 2014 may be a utility (e.g., anelectric utility), a regional transmission organization (RTO), anindependent system operator (ISO), or any other entity that providesincentives for performing frequency regulation. For example, incentiveprovider 2014 may provide system 2000 with monetary incentives forparticipating in a frequency response program. In order to participatein the frequency response program, system 2000 may maintain a reservecapacity of stored energy (e.g., in battery 2008) that can be providedto energy grid 2004. System 2000 may also maintain the capacity to drawenergy from energy grid 2004 and store the energy in battery 2008.Reserving both of these capacities may be accomplished by managing thestate-of-charge of battery 2008.

Frequency response controller 2012 may provide incentive provider 2014with a price bid and a capability bid. The price bid may include a priceper unit power (e.g., $/MW) for reserving or storing power that allowssystem 2000 to participate in a frequency response program offered byincentive provider 2014. The price per unit power bid by frequencyresponse controller 2012 is referred to herein as the “capabilityprice.” The price bid may also include a price for actual performance,referred to herein as the “performance price.” The capability bid maydefine an amount of power (e.g., MW) that system 2000 will reserve orstore in battery 2008 to perform frequency response, referred to hereinas the “capability bid.”

Incentive provider 2014 may provide frequency response controller 2012with a capability clearing price CP_(cap), a performance clearing priceCP_(perf), and a regulation award Reg_(award), which correspond to thecapability price, the performance price, and the capability bid,respectively. In some embodiments, CP_(cap), CP_(perf), and Reg_(award)are the same as the corresponding bids placed by controller 2012. Inother embodiments, CP_(cap), CP_(perf), and Reg_(award) may not be thesame as the bids placed by controller 2012. For example, CP_(cap),CP_(perf), and Reg_(award) may be generated by incentive provider 2014based on bids received from multiple participants in the frequencyresponse program. Controller 2012 may use CP_(cap), CP_(perf), andReg_(award) to perform frequency regulation.

Frequency response controller 2012 is shown receiving a regulationsignal from incentive provider 2014. The regulation signal may specify aportion of the regulation award Reg_(award) that frequency responsecontroller 2012 is to add or remove from energy grid 2004. In someembodiments, the regulation signal is a normalized signal (e.g., between−1 and 1) specifying a proportion of Reg_(award). Positive values of theregulation signal may indicate an amount of power to add to energy grid2004, whereas negative values of the regulation signal may indicate anamount of power to remove from energy grid 2004.

Frequency response controller 2012 may respond to the regulation signalby generating an optimal power setpoint for power inverter 2006. Theoptimal power setpoint may take into account both the potential revenuefrom participating in the frequency response program and the costs ofparticipation. Costs of participation may include, for example, amonetized cost of battery degradation as well as the energy and demandcharges that will be incurred. The optimization may be performed usingsequential quadratic programming, dynamic programming, or any otheroptimization technique.

In some embodiments, controller 2012 uses a battery life model toquantify and monetize battery degradation as a function of the powersetpoints provided to power inverter 2006. Advantageously, the batterylife model allows controller 2012 to perform an optimization that weighsthe revenue generation potential of participating in the frequencyresponse program against the cost of battery degradation and other costsof participation (e.g., less battery power available for campus 2002,increased electricity costs, etc.). An exemplary regulation signal andpower response are described in greater detail with reference to FIG.21.

Referring now to FIG. 21, a pair of frequency response graphs 2100 and2150 are shown, according to an exemplary embodiment. Graph 2100illustrates a regulation signal Reg_(signal) 2102 as a function of time.Reg_(signal) 2102 is shown as a normalized signal ranging from −1 to 1(i.e., −1≤Reg_(signal)≤1). Reg_(signal) 2102 may be generated byincentive provider 2014 and provided to frequency response controller2012. Reg_(signal) 2102 may define a proportion of the regulation awardReg_(award) 2154 that controller 2012 is to add or remove from energygrid 2004, relative to a baseline value referred to as the midpoint b2156. For example, if the value of Reg_(award) 2154 is 10 MW, aregulation signal value of 0.5 (i.e., Reg_(signal)=0.5) may indicatethat system 2000 is requested to add 5 MW of power at POI 2010 relativeto midpoint b (e.g., P_(POI)*=10 MW×0.5+b), whereas a regulation signalvalue of −0.3 may indicate that system 2000 is requested to remove 3 MWof power from POI 2010 relative to midpoint b (e.g., P^(POI)*=10MW×−0.3+b).

Graph 2150 illustrates the desired interconnection power P_(POI)* 2152as a function of time. P_(POI)* 2152 may be calculated by frequencyresponse controller 2012 based on Reg_(signal) 2102, Reg_(award) 2154,and a midpoint b 2156. For example, controller 2012 may calculateP_(POI)* 2152 using the following equation:

P_(POI)^(*) = Reg_(award) × Reg_(signal) + b

where P_(POI)* represents the desired power at POI 2010 (e.g.,P_(POI)*=P_(sup)+P_(campus)) and b is the midpoint. Midpoint b may bedefined (e.g., set or optimized) by controller 2012 and may representthe midpoint of regulation around which the load is modified in responseto Rea signal 2102. Optimal adjustment of midpoint b may allowcontroller 2012 to actively participate in the frequency response marketwhile also taking into account the energy and demand charge that will beincurred.

In order to participate in the frequency response market, controller2012 may perform several tasks. Controller 2012 may generate a price bid(e.g., $/MW) that includes the capability price and the performanceprice. In some embodiments, controller 2012 sends the price bid toincentive provider 2014 at approximately 15:30 each day and the pricebid remains in effect for the entirety of the next day. Prior tobeginning a frequency response period, controller 2012 may generate thecapability bid (e.g., MW) and send the capability bid to incentiveprovider 2014. In some embodiments, controller 2012 generates and sendsthe capability bid to incentive provider 2014 approximately 1.5 hoursbefore a frequency response period begins. In an exemplary embodiment,each frequency response period has a duration of one hour; however, itis contemplated that frequency response periods may have any duration.

At the start of each frequency response period, controller 2012 maygenerate the midpoint b around which controller 2012 plans to performfrequency regulation. In some embodiments, controller 2012 generates amidpoint b that will maintain battery 2008 at a constant state-of-charge(SOC) (i.e. a midpoint that will result in battery 2008 having the sameSOC at the beginning and end of the frequency response period). In otherembodiments, controller 2012 generates midpoint b using an optimizationprocedure that allows the SOC of battery 2008 to have different valuesat the beginning and end of the frequency response period. For example,controller 2012 may use the SOC of battery 2008 as a constrainedvariable that depends on midpoint b in order to optimize a valuefunction that takes into account frequency response revenue, energycosts, and the cost of battery degradation. Exemplary processes forcalculating and/or optimizing midpoint b under both the constant SOCscenario and the variable SOC scenario are described in detail in U.S.Provisional Patent Application No. 62/239,233 filed Oct. 8, 2015, theentire disclosure of which is incorporated by reference herein.

During each frequency response period, controller 2012 may periodicallygenerate a power setpoint for power inverter 2006. For example,controller 2012 may generate a power setpoint for each time step in thefrequency response period. In some embodiments, controller 2012generates the power setpoints using the equation:

P_(POI)^(*) = Reg_(award) × Reg_(signal) + b

where P_(POI)*=P_(sup)+P_(campus). Positive values of P_(POI)* indicateenergy flow from POI 2010 to energy grid 2004. Positive values ofP_(sup) and P_(campus) indicate energy flow to POI 2010 from powerinverter 2006 and campus 2002, respectively. In other embodiments,controller 2012 generates the power setpoints using the equation:

P_(POI)^(*) = Reg_(award) × Reg_(signal) + b

where Res_(FR) is an optimal frequency response generated by optimizinga value function. Controller 2012 may subtract P_(campus) from P_(POI)*to generate the power setpoint for power inverter 2006 (i.e.,P_(sup)=P_(POI)*−P_(campus)). The power setpoint for power inverter 2006indicates the amount of power that power inverter 2006 is to add to POI2010 (if the power setpoint is positive) or remove from POI 2010 (if thepower setpoint is negative). Exemplary processes for calculating powerinverter setpoints are described in detail in U.S. Provisional PatentApplication No. 62/239,233.

Frequency Response Controller

Referring now to FIG. 22, a block diagram illustrating frequencyresponse controller 2012 in greater detail is shown, according to anexemplary embodiment. Frequency response controller 2012 may beconfigured to perform an optimization process to generate values for thebid price, the capability bid, and the midpoint b. In some embodiments,frequency response controller 2012 generates values for the bids and themidpoint b periodically using a predictive optimization scheme (e.g.,once every half hour, once per frequency response period, etc.).Controller 2012 may also calculate and update power setpoints for powerinverter 2006 periodically during each frequency response period (e.g.,once every two seconds).

In some embodiments, the interval at which controller 2012 generatespower setpoints for power inverter 2006 is significantly shorter thanthe interval at which controller 2012 generates the bids and themidpoint b. For example, controller 2012 may generate values for thebids and the midpoint b every half hour, whereas controller 2012 maygenerate a power setpoint for power inverter 2006 every two seconds. Thedifference in these time scales allows controller 2012 to use a cascadedoptimization process to generate optimal bids, midpoints b, and powersetpoints.

In the cascaded optimization process, a high level controller 2212determines optimal values for the bid price, the capability bid, and themidpoint b by performing a high level optimization. High levelcontroller 2212 may select midpoint b to maintain a constantstate-of-charge in battery 2008 (i.e., the same state-of-charge at thebeginning and end of each frequency response period) or to vary thestate-of-charge in order to optimize the overall value of operatingsystem 2000 (e.g., frequency response revenue minus energy costs andbattery degradation costs). High level controller 2212 may alsodetermine filter parameters for a signal filter (e.g., a low passfilter) used by a low level controller 2214.

Low level controller 2214 uses the midpoint b and the filter parametersfrom high level controller 2212 to perform a low level optimization inorder to generate the power setpoints for power inverter 2006.Advantageously, low level controller 2214 may determine how closely totrack the desired power P_(POI)* at the point of interconnection 2010.For example, the low level optimization performed by low levelcontroller 2214 may consider not only frequency response revenue butalso the costs of the power setpoints in terms of energy costs andbattery degradation. In some instances, low level controller 2214 maydetermine that it is deleterious to battery 2008 to follow theregulation exactly and may sacrifice a portion of the frequency responserevenue in order to preserve the life of battery 2008. The cascadedoptimization process is described in greater detail below.

Still referring to FIG. 22, frequency response controller 2012 is shownto include a communications interface 2202 and a processing circuit2204. Communications interface 2202 may include wired or wirelessinterfaces (e.g., jacks, antennas, transmitters, receivers,transceivers, wire terminals, etc.) for conducting data communicationswith various systems, devices, or networks. For example, communicationsinterface 2202 may include an Ethernet card and port for sending andreceiving data via an Ethernet-based communications network and/or aWiFi transceiver for communicating via a wireless communicationsnetwork. Communications interface 2202 may be configured to communicatevia local area networks or wide area networks (e.g., the Internet, abuilding WAN, etc.) and may use a variety of communications protocols(e.g., BACnet, IP, LON, etc.).

Communications interface 2202 may be a network interface configured tofacilitate electronic data communications between frequency responsecontroller 2012 and various external systems or devices (e.g., campus2002, energy grid 2004, power inverter 2006, incentive provider 2014,utilities 2220, weather service 2222, etc.). For example, frequencyresponse controller 2012 may receive inputs from incentive provider 2014indicating an incentive event history (e.g., past clearing prices,mileage ratios, participation requirements, etc.) and a regulationsignal. Controller 2012 may receive a campus power signal from campus2002, utility rates from utilities 2220, and weather forecasts fromweather service 2222 via communications interface 2202. Controller 2012may provide a price bid and a capability bid to incentive provider 2014and may provide power setpoints to power inverter 2006 viacommunications interface 2202.

Still referring to FIG. 22, processing circuit 2204 is shown to includea processor 2206 and memory 2208. Processor 2206 may be a generalpurpose or specific purpose processor, an application specificintegrated circuit (ASIC), one or more field programmable gate arrays(FPGAs), a group of processing components, or other suitable processingcomponents. Processor 2206 may be configured to execute computer code orinstructions stored in memory 2208 or received from other computerreadable media (e.g., CDROM, network storage, a remote server, etc.).

Memory 2208 may include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 2208 may include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory2208 may include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 2208 may be communicably connected toprocessor 2206 via processing circuit 2204 and may include computer codefor executing (e.g., by processor 2206) one or more processes describedherein.

Still referring to FIG. 22, frequency response controller 2012 is shownto include a load/rate predictor 2210. Load/rate predictor 2210 may beconfigured to predict the electric load of campus 2002 (i.e.,{circumflex over (P)}_(campus)) for each time step k (e.g., k=1 n)within an optimization window. Load/rate predictor 2210 is shownreceiving weather forecasts from a weather service 2222. In someembodiments, load/rate predictor 2210 predicts {circumflex over(P)}_(campus) as a function of the weather forecasts. In someembodiments, load/rate predictor 2210 uses feedback from campus 2002 topredict {circumflex over (P)}_(campus). Feedback from campus 2002 mayinclude various types of sensory inputs (e.g., temperature, flow,humidity, enthalpy, etc.) or other data relating to buildings 2016,central plant 2018, and/or energy generation 2020 (e.g., inputs from aHVAC system, a lighting control system, a security system, a watersystem, a PV energy system, etc.). Load/rate predictor 2210 may predictone or more different types of loads for campus 2002. For example,load/rate predictor 2210 may predict a hot water load, a cold waterload, and/or an electric load for each time step k within theoptimization window.

In some embodiments, load/rate predictor 2210 receives a measuredelectric load and/or previous measured load data from campus 2002. Forexample, load/rate predictor 2210 is shown receiving a campus powersignal from campus 2002. The campus power signal may indicate themeasured electric load of campus 2002. Load/rate predictor 2210 maypredict one or more statistics of the campus power signal including, forexample, a mean campus power μ_(campus) and a standard deviation of thecampus power σ_(campus.) Load/rate predictor 2210 may predict{circumflex over (P)}_(campus) as a function of a given weather forecast({circumflex over (ϕ)}_(w)), a day type (day), the time of day (t), andprevious measured load data (Y_(k-1)). Such a relationship is expressedin the following equation:

P̂_(campus) = f(ϕ̂_(w), day, t|Y_(k − 1))

In some embodiments, load/rate predictor 2210 uses a deterministic plusstochastic model trained from historical load data to predict{circumflex over (P)}_(campus). Load/rate predictor 2210 may use any ofa variety of prediction methods to predict {circumflex over(P)}_(campus) (e.g., linear regression for the deterministic portion andan AR model for the stochastic portion). In some embodiments, load/ratepredictor 2210 makes load/rate predictions using the techniquesdescribed in U.S. patent application Ser. No. 14/717,593.

Load/rate predictor 2210 is shown receiving utility rates from utilities2220. Utility rates may indicate a cost or price per unit of a resource(e.g., electricity, natural gas, water, etc.) provided by utilities 2220at each time step k in the optimization window. In some embodiments, theutility rates are time-variable rates. For example, the price ofelectricity may be higher at certain times of day or days of the week(e.g., during high demand periods) and lower at other times of day ordays of the week (e.g., during low demand periods). The utility ratesmay define various time periods and a cost per unit of a resource duringeach time period. Utility rates may be actual rates received fromutilities 2220 or predicted utility rates estimated by load/ratepredictor 2210.

In some embodiments, the utility rates include demand charges for one ormore resources provided by utilities 2220. A demand charge may define aseparate cost imposed by utilities 2220 based on the maximum usage of aparticular resource (e.g., maximum energy consumption) during a demandcharge period. The utility rates may define various demand chargeperiods and one or more demand charges associated with each demandcharge period. In some instances, demand charge periods may overlappartially or completely with each other and/or with the predictionwindow. Advantageously, frequency response controller 2012 may beconfigured to account for demand charges in the high level optimizationprocess performed by high level controller 2212. Utilities 2220 may bedefined by time-variable (e.g., hourly) prices, a maximum service level(e.g., a maximum rate of consumption allowed by the physicalinfrastructure or by contract) and, in the case of electricity, a demandcharge or a charge for the peak rate of consumption within a certainperiod. Load/rate predictor 2210 may store the predicted campus power{circumflex over (P)}_(campus) and the utility rates in memory 2208and/or provide the predicted campus power {circumflex over (P)}_(campus)and the utility rates to high level controller 2212.

Still referring to FIG. 22, frequency response controller 2012 is shownto include an energy market predictor 2216 and a signal statisticspredictor 2218. Energy market predictor 2216 may be configured topredict energy market statistics relating to the frequency responseprogram. For example, energy market predictor 2216 may predict thevalues of one or more variables that can be used to estimate frequencyresponse revenue. In some embodiments, the frequency response revenue isdefined by the following equation:

Rev = PS(CP_(cap) + MR ⋅ CP_(perf))Reg_(award)

where Rev is the frequency response revenue, CP_(cap) is the capabilityclearing price, MR is the mileage ratio, and CP_(perf) is theperformance clearing price. PS is a performance score based on howclosely the frequency response provided by controller 2012 tracks theregulation signal. Energy market predictor 2216 may be configured topredict the capability clearing price CP_(cap), the performance clearingprice CP_(perf), the mileage ratio MR, and/or other energy marketstatistics that can be used to estimate frequency response revenue.Energy market predictor 2216 may store the energy market statistics inmemory 2208 and/or provide the energy market statistics to high levelcontroller 2212.

Signal statistics predictor 2218 may be configured to predict one ormore statistics of the regulation signal provided by incentive provider2014. For example, signal statistics predictor 2218 may be configured topredict the mean μ_(FR), standard deviation σ_(FR), and/or otherstatistics of the regulation signal. The regulation signal statisticsmay be based on previous values of the regulation signal (e.g., ahistorical mean, a historical standard deviation, etc.) or predictedvalues of the regulation signal (e.g., a predicted mean, a predictedstandard deviation, etc.).

In some embodiments, signal statistics predictor 2218 uses adeterministic plus stochastic model trained from historical regulationsignal data to predict future values of the regulation signal. Forexample, signal statistics predictor 2218 may use linear regression topredict a deterministic portion of the regulation signal and an AR modelto predict a stochastic portion of the regulation signal. In someembodiments, signal statistics predictor 2218 predicts the regulationsignal using the techniques described in U.S. patent application Ser.No. 14/717,593. Signal statistics predictor 2218 may use the predictedvalues of the regulation signal to calculate the regulation signalstatistics. Signal statistics predictor 2218 may store the regulationsignal statistics in memory 2208 and/or provide the regulation signalstatistics to high level controller 2212.

Still referring to FIG. 22, frequency response controller 2012 is shownto include a high level controller 2212. High level controller 2212 maybe configured to generate values for the midpoint b and the capabilitybid Reg_(award). In some embodiments, high level controller 2212determines a midpoint b that will cause battery 2008 to have the samestate-of-charge (SOC) at the beginning and end of each frequencyresponse period. In other embodiments, high level controller 2212performs an optimization process to generate midpoint b and Reg_(award).For example, high level controller 2212 may generate midpoint b using anoptimization procedure that allows the SOC of battery 2008 to varyand/or have different values at the beginning and end of the frequencyresponse period. High level controller 2212 may use the SOC of battery2008 as a constrained variable that depends on midpoint b in order tooptimize a value function that takes into account frequency responserevenue, energy costs, and the cost of battery degradation. Both ofthese embodiments are described in greater detail with reference to FIG.23.

High level controller 2212 may determine midpoint b by equating thedesired power P_(POI)* at POI 2010 with the actual power at POI 2010 asshown in the following equation:

(Reg_(signal))(Reg_(award)) + b = P_(bat) + P_(loss) + P_(campus)

where the left side of the equation (Reg_(signal))(Reg_(award)) b is thedesired power P_(POI)* at POI 2010 and the right side of the equation isthe actual power at POI 2010. Integrating over the frequency responseperiod results in the following equation:

${\int\limits_{period}{\left( {{\left( {Reg}_{signal} \right)\left( {Reg}_{award} \right)} + b} \right)dt}} = {\int\limits_{period}{\left( {P_{bat} + P_{loss} + P_{campus}} \right)dt}}$

For embodiments in which the SOC of battery 2008 is maintained at thesame value at the beginning and end of the frequency response period,the integral of the battery power P_(bat) over the frequency responseperiod is zero (i.e., ∫P_(bat)dt=0). Accordingly, the previous equationcan be rewritten as follows:

$b = {{\int\limits_{period}{P_{loss}dt}} + {\int\limits_{period}{P_{campus}dt}} - {Reg_{award}{\int\limits_{period}{Reg_{si{gnal}}dt}}}}$

where the term ∫P_(bat) dt has been omitted because ∫P_(bat) dt=0. Thisis ideal behavior if the only goal is to maximize frequency responserevenue. Keeping the SOC of battery 2008 at a constant value (and near50%) will allow system 2000 to participate in the frequency marketduring all hours of the day.

High level controller 2212 may use the estimated values of the campuspower signal received from campus 2002 to predict the value of∫P_(campus) dt over the frequency response period. Similarly, high levelcontroller 2212 may use the estimated values of the regulation signalfrom incentive provider 2014 to predict the value of ∫Reg_(signal) dtover the frequency response period. High level controller 2212 mayestimate the value of ∫P_(loss) dt using a Thevinin equivalent circuitmodel of battery 2008 (described in greater detail with reference toFIG. 23). This allows high level controller 2212 to estimate theintegral ∫P_(loss) dt as a function of other variables such asReg_(award), Reg_(signal), P_(campus), and midpoint b.

After substituting known and estimated values, the preceding equationcan be rewritten as follows:

${{{\frac{1}{4P_{\max}}\left\lbrack {{E\left\{ P_{campus}^{2} \right\}} + {{Reg}_{award}^{2}E\left\{ {Reg}_{signal}^{2} \right\}} - {2{Reg}_{award}E\left\{ {Reg}_{signal} \right\} E\left\{ P_{campus} \right\}}} \right\rbrack}\Delta\; t} + {\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} - {E\left\{ P_{campus} \right\}}} \right\rbrack\Delta\; t} + {{\frac{b}{2P_{\max}}\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} - {E\left\{ P_{campus} \right\}}} \right\rbrack}\Delta t} + {b\Delta t} + {\frac{b^{2}}{4P_{\max}}\Delta t}} = 0$

where the notation E{ } indicates that the variable within the brackets{ } is ergodic and can be approximated by the estimated mean of thevariable. For example, the term E{Reg_(signal)} can be approximated bythe estimated mean of the regulation signal μ_(FR) and the termE{P_(campus)} can be approximated by the estimated mean of the campuspower signal μ_(campus). High level controller 2212 may solve theequation for midpoint b to determine the midpoint b that maintainsbattery 2008 at a constant state-of-charge.

For embodiments in which the SOC of battery 2008 is treated as avariable, the SOC of battery 2008 may be allowed to have differentvalues at the beginning and end of the frequency response period.Accordingly, the integral of the battery power P_(bat) over thefrequency response period can be expressed as −ΔSOC·C_(des) as shown inthe following equation:

${\int\limits_{period}{P_{bat}dt}} = {{- \Delta}\;{{SOC} \cdot C_{des}}}$

where ΔSOC is the change in the SOC of battery 2008 over the frequencyresponse period and C_(des) is the design capacity of battery 2008. TheSOC of battery 2008 may be a normalized variable (i.e., 0≤SOC≤1) suchthat the term SOC·C_(des) represents the amount of energy stored inbattery 2008 for a given state-of-charge. The SOC is shown as a negativevalue because drawing energy from battery 2008 (i.e., a positiveP_(bat)) decreases the SOC of battery 2008. The equation for midpoint bbecomes:

$b = {{\int\limits_{period}{P_{loss}{dt}}} + {\int\limits_{period}{P_{campus}{dt}}} + {\int\limits_{period}{P_{bat}dt}} - {Reg_{award}{\int\limits_{period}{{Re}g_{si{gnal}}dt}}}}$

After substituting known and estimated values, the preceding equationcan be rewritten as follows:

${{{\frac{1}{4P_{\max}}\left\lbrack {{E\left\{ P_{campus}^{2} \right\}} + {Reg_{award}^{2}} + {E\left\{ {Reg_{signal}^{2}} \right\}} - {2Reg_{award}E\left\{ {Reg_{signal}} \right\} E\left\{ P_{campus} \right\}}} \right\rbrack}\Delta\; t} + {\left\lbrack {{Reg_{award}E\left\{ {Reg_{signal}} \right\}} + {E\left\{ P_{campus} \right\}}} \right\rbrack\Delta t} + {\Delta\;{{SOC} \cdot C_{des}}} + {{\frac{b}{2P_{\max}}\left\lbrack {{Reg_{award}E\left\{ {Reg_{signal}} \right\}} - {E\left\{ P_{campus} \right\}}} \right\rbrack}\Delta t} + {b\Delta t} + {\frac{b^{2}}{4P_{\max}}\Delta t}} = 0$

High level controller 2212 may solve the equation for midpoint b interms of ΔSOC.

High level controller 2212 may perform an optimization to find optimalmidpoints b for each frequency response period within an optimizationwindow (e.g., each hour for the next day) given the electrical costsover the optimization window. Optimal midpoints b may be the midpointsthat maximize an objective function that includes both frequencyresponse revenue and costs of electricity and battery degradation. Forexample, an objective function J can be written as:

$J = {{\sum\limits_{k = 1}^{h}{{Rev}\left( {Reg}_{{award},k} \right)}} + {\sum\limits_{k = 1}^{h}{c_{k}b_{k}}} + {\min\limits_{period}\left( {P_{{campus},k} + b_{k}} \right)} - {\sum\limits_{k = 1}^{h}\lambda_{{bat},k}}}$

where Rev(Reg_(award,k)) is the frequency response revenue at time stepk, c_(k)b_(k) is the cost of electricity purchased at time step k, themin( ) term is the demand charge based on the maximum rate ofelectricity consumption during the applicable demand charge period, andλ_(bat,k) is the monetized cost battery degradation at time step k. Theelectricity cost is expressed as a positive value because drawing powerfrom energy grid 2004 is represented as a negative power and thereforewill result in negative value (i.e., a cost) in the objective function.The demand charge is expressed as a minimum for the same reason (i.e.,the most negative power value represents maximum power draw from energygrid 2004).

High level controller 2212 may estimate the frequency response revenueRev(Reg_(award,k)) as a function of the midpoints b. In someembodiments, high level controller 2212 estimates frequency responserevenue using the following equation:

(Reg_(award)) = Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

where CP_(cap), MR, and CP_(perf) are the energy market statisticsreceived from energy market predictor 2216 and Reg_(award) is a functionof the midpoint b. For example, high level controller 2212 may place abid that is as large as possible for a given midpoint, as shown in thefollowing equation:

Reg_(awaτd) = P_(limit) − |b|

where P_(limit) is the power rating of power inverter 2006.Advantageously, selecting Reg_(award) as a function of midpoint b allowshigh level controller 2212 to predict the frequency response revenuethat will result from a given midpoint b.

High level controller 2212 may estimate the cost of battery degradationλ_(bat) as a function of the midpoints b. For example, high levelcontroller 2212 may use a battery life model to predict a loss inbattery capacity that will result from a set of midpoints b, poweroutputs, and/or other variables that can be manipulated by controller2012. In some embodiments, the battery life model expresses the loss inbattery capacity C_(loss,add) as a sum of multiple piecewise linearfunctions, as shown in the following equation:

C_(loss, add) = f₁(T_(cell)) + f₂(SOC) + f₃(DOD) + f₄(PR) + f₅(ER) − C_(loss, nom)

where T_(cell) is the cell temperature, SOC is the state-of-charge, DODis the depth of discharge, PR is the average power ratio

$\left( {{e.g.},{{PR} = {av{g\left( \frac{P}{P_{des}} \right)}}}} \right),$

and ER is the average effort ratio

$\left( {{e.g.},{{ER} = {{av}{g\left( \frac{\Delta P}{P_{des}} \right)}}}} \right.$

of battery 2008. Each of these terms is described in greater detail withreference to FIG. 23. Advantageously, several of the terms in thebattery life model depend on the midpoints b and power setpointsselected by controller 2012. This allows high level controller 2212 topredict a loss in battery capacity that will result from a given set ofcontrol outputs. High level controller 2212 may monetize the loss inbattery capacity and include the monetized cost of battery degradationλ_(bat) in the objective function J.

In some embodiments, high level controller 2212 generates a set offilter parameters for low level controller 2214. The filter parametersmay be used by low level controller 2214 as part of a low-pass filterthat removes high frequency components from the regulation signal. Insome embodiments, high level controller 2212 generates a set of filterparameters that transform the regulation signal into an optimalfrequency response signal Res_(FR). For example, high level controller2212 may perform a second optimization process to determine an optimalfrequency response Res_(FR) based on the optimized values forReg_(award) and midpoint b.

In some embodiments, high level controller 2212 determines the optimalfrequency response Res_(FR) by optimizing value function J with thefrequency response revenue Rev(Reg_(award)) defined as follows:

Rev(Reg_(award)) = PS ⋅ Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

and with the frequency response Res_(FR) substituted for the regulationsignal in the battery life model. The performance score PS may be basedon several factors that indicate how well the optimal frequency responseRes_(FR) tracks the regulation signal. Closely tracking the regulationsignal may result in higher performance scores, thereby increasing thefrequency response revenue. However, closely tracking the regulationsignal may also increase the cost of battery degradation λ_(bat). Theoptimized frequency response Res_(FR) represents an optimal tradeoffbetween decreased frequency response revenue and increased battery life.High level controller 2212 may use the optimized frequency responseRes_(FR) to generate a set of filter parameters for low level controller2214. These and other features of high level controller 2212 aredescribed in greater detail with reference to FIG. 23.

Still referring to FIG. 22, frequency response controller 2012 is shownto include a low level controller 2214. Low level controller 2214 isshown receiving the midpoints b and the filter parameters from highlevel controller 2212. Low level controller 2214 may also receive thecampus power signal from campus 2002 and the regulation signal fromincentive provider 2014. Low level controller 2214 may use theregulation signal to predict future values of the regulation signal andmay filter the predicted regulation signal using the filter parametersprovided by high level controller 2212.

Low level controller 2214 may use the filtered regulation signal todetermine optimal power setpoints for power inverter 2006. For example,low level controller 2214 may use the filtered regulation signal tocalculate the desired interconnection power P_(POI)* using the followingequation:

P_(POI)^(*) = Reg_(award) ⋅ Reg_(filter) + b

where Reg_(filter) is the filtered regulation signal. Low levelcontroller 2214 may subtract the campus power P_(campus) from thedesired interconnection power P_(POI)* to calculate the optimal powersetpoints P_(SP) for power inverter 2006, as shown in the followingequation:

P_(SP) = P_(POI)^(*) − P_(campus)

In some embodiments, low level controller 2214 performs an optimizationto determine how closely to track P_(POI)*. For example, low levelcontroller 2214 may determine an optimal frequency response Res_(FR) byoptimizing value function J with the frequency response revenueRev(Reg_(award)) defined as follows:

(Rev(Reg_(award)) = PS ⋅ Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

and with the frequency response Res_(FR) substituted for the regulationsignal in the battery life model. Low level controller 2214 may use theoptimal frequency response Res_(FR) in place of the filtered frequencyresponse Reg_(filter) to calculate the desired interconnection powerP_(POI)* and power setpoints P_(SP) as previously described. These andother features of low level controller 2214 are described in greaterdetail with reference to FIG. 24.

High Level Controller

Referring now to FIG. 23, a block diagram illustrating high levelcontroller 2212 in greater detail is shown, according to an exemplaryembodiment. High level controller 2212 is shown to include a constantstate-of-charge (SOC) controller 2302 and a variable SOC controller2308. Constant SOC controller 2302 may be configured to generate amidpoint b that results in battery 2008 having the same SOC at thebeginning and the end of each frequency response period. In other words,constant SOC controller 2308 may determine a midpoint b that maintainsbattery 2008 at a predetermined SOC at the beginning of each frequencyresponse period. Variable SOC controller 2308 may generate midpoint busing an optimization procedure that allows the SOC of battery 2008 tohave different values at the beginning and end of the frequency responseperiod. In other words, variable SOC controller 2308 may determine amidpoint b that results in a net change in the SOC of battery 2008 overthe duration of the frequency response period.

Constant State-of-Charge Controller

Constant SOC controller 2302 may determine midpoint b by equating thedesired power P_(POI)* at POI 2010 with the actual power at POI 2010 asshown in the following equation:

(Reg_(signal))(Reg_(award)) + b = P_(bat) + P_(loss) + P_(campus)

where the left side of the equation (Reg_(signal))(Reg_(award)) b is thedesired power P_(POI)* at POI 2010 and the right side of the equation isthe actual power at POI 2010. Integrating over the frequency responseperiod results in the following equation:

${\int\limits_{period}{\left( {{\left( {Reg}_{signal} \right)\left( {Reg}_{award} \right)} + b} \right){dt}}} = {\int\limits_{period}{\left( {P_{bat} + P_{loss} + P_{campus}} \right){dt}}}$

Since the SOC of battery 2008 is maintained at the same value at thebeginning and end of the frequency response period, the integral of thebattery power P_(bat) over the frequency response period is zero (i.e.,∫P_(bat)dt=0). Accordingly, the previous equation can be rewritten asfollows:

$b = {{\int\limits_{period}{P_{loss}{dt}}} + {\int\limits_{period}{P_{campus}{dt}}} - {{Reg}_{award}{\int\limits_{period}{{Reg}_{signal}{dt}}}}}$

where the term ∫P_(bat) dt has been omitted because ∫P_(bat) dt=0. Thisis ideal behavior if the only goal is to maximize frequency responserevenue. Keeping the SOC of battery 2008 at a constant value (and near50%) will allow system 2000 to participate in the frequency marketduring all hours of the day.

Constant SOC controller 2302 may use the estimated values of the campuspower signal received from campus 2002 to predict the value of∫P_(campus) dt over the frequency response period. Similarly, constantSOC controller 2302 may use the estimated values of the regulationsignal from incentive provider 2014 to predict the value of∫Reg_(signal) dt over the frequency response period. Reg_(award) can beexpressed as a function of midpoint b as previously described (e.g.,Reg_(award)=P_(limit)−|b|). Therefore, the only remaining term in theequation for midpoint b is the expected battery power loss ∫P_(loss).

Constant SOC controller 2302 is shown to include a battery power lossestimator 2304. Battery power loss estimator 2304 may estimate the valueof ∫P_(loss) dt using a Thevinin equivalent circuit model of battery2008. For example, battery power loss estimator 2304 may model battery2008 as a voltage source in series with a resistor. The voltage sourcehas an open circuit voltage of V_(OC) and the resistor has a resistanceof R_(TH). An electric current I flows from the voltage source throughthe resistor.

To find the battery power loss in terms of the supplied power P_(sup),battery power loss estimator 2304 may identify the supplied powerP_(sup) as a function of the current I, the open circuit voltage V_(OC),and the resistance R_(TH) as shown in the following equation:

P_(sup) = V_(OC)I − I²R_(TH)

which can be rewritten as:

${\frac{I^{2}}{I_{SC}} - I + \frac{P^{\prime}}{4}} = 0$

with the following substitutions:

${I_{SC} = \frac{V_{OC}}{R_{TH}}},{P^{\prime} = \frac{P}{P_{\max}}},{P_{\max} = \frac{V_{OC}^{2}}{4R_{TH}}}$

where P is the supplied power and P_(max) is the maximum possible powertransfer.

Battery power loss estimator 2304 may solve for the current I asfollows:

$I = {\frac{I_{SC}}{2}\left( {1 - \sqrt{1 - P^{\prime}}} \right)}$

which can be converted into an expression for power loss P_(loss) interms of the supplied power P and the maximum possible power transferP_(max) as shown in the following equation:

$P_{loss} = {P_{\max}\left( {1 - \sqrt{1 - P^{\prime}}} \right)}^{2}$

Battery power loss estimator 2304 may simplify the previous equation byapproximating the expression (1−√{square root over (1−P′)}) as a linearfunction about P′=0. This results in the following approximation forP_(loss):

$P_{loss} \approx {P_{\max}\left( \frac{P^{\prime}}{2} \right)}^{2}$

which is a good approximation for powers up to one-fifth of the maximumpower.

Battery power loss estimator 2304 may calculate the expected value of∫P_(loss) dt over the frequency response period as follows:

${\int\limits_{period}{P_{loss}{dt}}} = {{\int\limits_{period}{{- {P_{\max}\left( \frac{{{Reg}_{award}{Reg}_{signal}} + b - P_{campus}}{2P_{\max}} \right)}^{2}}{dt}}} = {{{\frac{1}{4P_{\max}}\left\lbrack {{2{Reg}_{award}{\int\limits_{period}{P_{campus}{Reg}_{signal}{dt}}}} - {\int\limits_{period}{P_{campus}^{2}{dt}}} - {{Reg}_{award}^{2}{\int\limits_{period}{{Reg}_{signal}^{2}{dt}}}}} \right\rbrack} + {\frac{b}{2P_{\max}}\left\lbrack {{\int\limits_{period}{P_{campus}^{2}{dt}}} - {{Reg}_{award}{\int\limits_{period}{{Reg}_{signal}{dt}}}}} \right\rbrack} - {\frac{b^{2}}{4P_{\max}}{\Delta t}}} = {{{\frac{1}{4P_{\max}}\left\lbrack {{E\left\{ P_{campus}^{2} \right\}} + {{Reg}_{award}^{2}E\left\{ {Reg}_{signal}^{2} \right\}} - {2{Reg}_{award}E\left\{ {Reg}_{signal} \right\} E\left\{ P_{campus} \right\}}} \right\rbrack}{\Delta t}} - {{\frac{b}{2P_{\max}}\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} - {E\left\{ P_{campus} \right\}}} \right\rbrack}{\Delta t}} - {\frac{b^{2}}{4P_{\max}}{\Delta t}}}}}$

where the notation E{ } indicates that the variable within the brackets{ } is ergodic and can be approximated by the estimated mean of thevariable. This formulation allows battery power loss estimator 2304 toestimate ∫P_(loss) dt as a function of other variables such as Reaaward, Reg_(signal), P_(campus), midpoint b, and P_(max).

Constant SOC controller 2302 is shown to include a midpoint calculator2306. Midpoint calculator 2306 may be configured to calculate midpoint bby substituting the previous expression for ∫P_(loss) dt into theequation for midpoint b. After substituting known and estimated values,the equation for midpoint b can be rewritten as follows:

${{\frac{1}{4P_{\max}}\left\lbrack {{E\left\{ P_{campus}^{2} \right\}} +}\quad \right.}\quad}{\quad{{{Reg}_{award}^{2}E\left\{ {Reg}_{signal}^{2} \right\}} - {\quad{{{\quad\quad}\left. \quad{{\quad\quad}2{Reg}_{award}E\left\{ {Reg}_{signal} \right\} E\left\{ P_{campus} \right\}} \right\rbrack{\Delta t}} + {\quad{\quad{\quad{\quad{{\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} - {E\left\{ P_{campus} \right\}}} \right\rbrack{\Delta t}} + {\quad{\quad{{\quad\quad}{\frac{b}{2P_{\max}}\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} -}\quad \right.}{\quad{{\quad{{{\quad\quad}\left. \quad{E\left\{ P_{campus} \right\}} \right\rbrack{\Delta t}} +}\quad}{\quad{\quad{{b\Delta t}{\quad{+ {\quad{\quad{{\frac{b^{2}}{4P_{\max}}{\Delta t}} = {0\quad}}}}}}}}}}}}}}}}}}}}}}}$

Midpoint calculator 2306 may solve the equation for midpoint b todetermine the midpoint b that maintains battery 2008 at a constantstate-of-charge.

Variable State-of-Charge Controller

Variable SOC controller 2308 may determine optimal midpoints b byallowing the SOC of battery 2008 to have different values at thebeginning and end of a frequency response period. For embodiments inwhich the SOC of battery 2008 is allowed to vary, the integral of thebattery power P_(bat) over the frequency response period can beexpressed as −ΔSOC·C_(des) as shown in the following equation:

${\int\limits_{period}{P_{bat}{dt}}} = {{- {\Delta{SOC}}} \cdot C_{des}}$

where ΔSOC is the change in the SOC of battery 2008 over the frequencyresponse period and C_(des) is the design capacity of battery 2008. TheSOC of battery 2008 may be a normalized variable (i.e., 0≤SOC≤1) suchthat the term SOC·C_(des) represents the amount of energy stored inbattery 2008 for a given state-of-charge. The SOC is shown as a negativevalue because drawing energy from battery 2008 (i.e., a positiveP_(bat)) decreases the SOC of battery 2008. The equation for midpoint bbecomes:

$b = {{\int\limits_{period}{P_{loss}{dt}}} + {\int\limits_{period}{P_{campus}{dt}}} + {\int\limits_{period}{P_{bat}{dt}}} - {{Reg}_{award}{\int\limits_{period}{{Reg}_{signal}{dt}}}}}$

Variable SOC controller 2308 is shown to include a battery power lossestimator 2310 and a midpoint optimizer 2312. Battery power lossestimator 2310 may be the same or similar to battery power lossestimator 2304. Midpoint optimizer 2312 may be configured to establish arelationship between the midpoint b and the SOC of battery 2008. Forexample, after substituting known and estimated values, the equation formidpoint b can be written as follows:

${{\frac{1}{4P_{\max}}\left\lbrack {{E\left\{ P_{campus}^{2} \right\}} +}\quad \right.}\quad}{\quad{{{Reg}_{award}^{2}E\left\{ {Reg}_{signal}^{2} \right\}} - {\quad{{{\quad\quad}\left. \quad{{\quad\quad}2{Reg}_{award}E\left\{ {Reg}_{signal} \right\} E\left\{ P_{campus} \right\}} \right\rbrack{\Delta t}} + {\quad{\quad{\quad{\quad{{\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} + {E\left\{ P_{campus} \right\}}} \right\rbrack{\Delta t}} + {{\Delta{SOC}} \cdot C_{des}} + {\quad{\quad{{\quad\quad}{\frac{b}{2P_{\max}}\left\lbrack {{{Reg}_{award}E\left\{ {Reg}_{signal} \right\}} -}\quad \right.}{\quad{{\quad{{{\quad\quad}\left. \quad{E\left\{ P_{campus} \right\}} \right\rbrack{\Delta t}} +}\quad}{\quad{\quad{{b\Delta t}{\quad{+ {\quad{\quad{{\frac{b^{2}}{4P_{\max}}{\Delta t}} = {0\quad}}}}}}}}}}}}}}}}}}}}}}}$

Advantageously, the previous equation defines a relationship betweenmidpoint b and the change in SOC of battery 2008. Midpoint optimizer2312 may use this equation to determine the impact that different valuesof midpoint b have on the SOC in order to determine optimal midpoints b.This equation can also be used by midpoint optimizer 2312 duringoptimization to translate constraints on the SOC in terms of midpoint b.For example, the SOC of battery 2008 may be constrained between zero and1 (e.g., 0≤SOC≤1) since battery 2008 cannot be charged in excess of itsmaximum capacity or depleted below zero. Midpoint optimizer 2312 may usethe relationship between ΔSOC and midpoint b to constrain theoptimization of midpoint b to midpoint values that satisfy the capacityconstraint.

Midpoint optimizer 2312 may perform an optimization to find optimalmidpoints b for each frequency response period within the optimizationwindow (e.g., each hour for the next day) given the electrical costsover the optimization window. Optimal midpoints b may be the midpointsthat maximize an objective function that includes both frequencyresponse revenue and costs of electricity and battery degradation. Forexample, an objective function J can be written as:

$J = {{\sum\limits_{k = 1}^{h}{{Rev}\left( {Reg}_{{award},k} \right)}} + {\sum\limits_{k = 1}^{h}{c_{k}b_{k}}} + {\min\limits_{period}\left( {P_{{campus},k} + b_{k}} \right)} - {\sum\limits_{k = 1}^{h}\lambda_{{bat},k}}}$

where Rev(Reg_(award,k)) is the frequency response revenue at time stepk, c_(k)b_(k) is the cost of electricity purchased at time step k, themin( ) term is the demand charge based on the maximum rate ofelectricity consumption during the applicable demand charge period, andλ_(bat,k) is the monetized cost battery degradation at time step k.Midpoint optimizer 2312 may use input from frequency response revenueestimator 2316 (e.g., a revenue model) to determine a relationshipbetween midpoint b and Rev(Reg_(award,k)). Similarly, midpoint optimizer2312 may use input from battery degradation estimator 2318 and/orrevenue loss estimator 2320 to determine a relationship between midpointb and the monetized cost of battery degradation λ_(bat,k).

Still referring to FIG. 23, variable SOC controller 2308 is shown toinclude an optimization constraints module 2314. Optimizationconstraints module 2314 may provide one or more constraints on theoptimization performed by midpoint optimizer 2312. The optimizationconstraints may be specified in terms of midpoint b or other variablesthat are related to midpoint b. For example, optimization constraintsmodule 2314 may implement an optimization constraint specifying that theexpected SOC of battery 2008 at the end of each frequency responseperiod is between zero and one, as shown in the following equation:

${0 \leq {{SOC}_{0} + {\sum\limits_{i = 1}^{j}{\Delta{SOC}}_{i}}} \leq {1\mspace{14mu}{\forall\mspace{14mu} j}}} = {1\mspace{14mu}\ldots\mspace{14mu} h}$

where SOC₀ is the SOC of battery 2008 at the beginning of theoptimization window, ΔSOC_(i) is the change in SOC during frequencyresponse period i, and h is the total number of frequency responseperiods within the optimization window.

In some embodiments, optimization constraints module 2314 implements anoptimization constraint on midpoint b so that the power at POI 2010 doesnot exceed the power rating of power inverter 2006. Such a constraint isshown in the following equation:

−P_(limit) ≤ b_(k) + P_(campus, max )^((p)) ≤ P_(limit)

where P_(limit) is the power rating of power inverter 2006 andP_(campus,max) ^((p)) is the maximum value of P_(campus) at confidencelevel p. This constraint could also be implemented by identifying theprobability that the sum of b_(k) and P_(campus,max) exceeds the powerinverter power rating (e.g., using a probability density function forP_(campus,max)) and limiting that probability to less than or equal to1−p.

In some embodiments, optimization constraints module 2314 implements anoptimization constraint to ensure (with a given probability) that theactual SOC of battery 2008 remains between zero and one at each timestep during the applicable frequency response period. This constraint isdifferent from the first optimization constraint which placed bounds onthe expected SOC of battery 2008 at the end of each optimization period.The expected SOC of battery 2008 can be determined deterministically,whereas the actual SOC of battery 2008 is dependent on the campus powerP_(campus) and the actual value of the regulation signal Reg_(signal) ateach time step during the optimization period. In other words, for anyvalue of Reg_(award)>0, there is a chance that battery 2008 becomesfully depleted or fully charged while maintaining the desired powerP_(POI)* at POI 2010.

Optimization constraints module 2314 may implement the constraint on theactual SOC of battery 2008 by approximating the battery power P_(bat) (arandom process) as a wide-sense stationary, correlated normallydistributed process. Thus, the SOC of battery 2008 can be considered asa random walk. Determining if the SOC would violate the constraint is anexample of a gambler's ruin problem. For example, consider a random walkdescribed by the following equation:

y_(k + 1) = y_(k) + x_(k), P(x_(k) = 1) = p, P(x_(k) = −1) = 1 − p

The probability P that y_(k) (starting at state z) will reach zero inless than n moves is given by the following equation:

$P = {2{{a^{- 1}\left( {2p} \right)}^{\frac{n - z}{2}}\left\lbrack {2\left( {1 - p} \right)} \right\rbrack}^{\frac{n + z}{2}}{\sum\limits_{v = 1}^{\frac{a}{2}}{{\cos^{n - 1}\left( \frac{\pi v}{a} \right)}{\sin\left( \frac{\pi v}{a} \right)}{\sin\left( \frac{\pi{zv}}{a} \right)}}}}$

In some embodiments, each frequency response period includesapproximately n=1800 time steps (e.g., one time step every two secondsfor an hour). Therefore, the central limit theorem applies and it ispossible to convert the autocorrelated random process for P_(bat) andthe limits on the SOC of battery 2008 into an uncorrelated randomprocess of 1 or −1 with a limit of zero.

In some embodiments, optimization constraints module 2314 converts thebattery power P_(bat) into an uncorrelated normal process driven by theregulation signal Reg_(signal). For example, consider the originalbattery power described by the following equation:

x_(k + 1) = αx_(k) + e_(k), x_(k) ∼ N(μ, σ), e_(k) ∼ N(μ_(e), σ_(e))

where the signal x represents the battery power P_(bat), α is anautocorrelation parameter, and e is a driving signal. In someembodiments, e represents the regulation signal Reg_(signal). If thepower of the signal x is known, then the power of signal e is alsoknown, as shown in the following equations:

μ(1 − α) = μ_(e) E{x_(k)²}(1 − α)² − 2αμμ_(e) = E{e_(k)²}E{x_(k)²}(1 − α²) − 2μ²α(1 − α) = E{e_(k)²},

Additionally, the impulse response of the difference equation forx_(k+1) is:

h_(k) = α^(k)  k ≥ 0

Using convolution, x_(k) can be expressed as follows:

$x_{k} = {\sum\limits_{i = 1}^{k}{\alpha^{k - i}e_{i - 1}}}$x₃ = α²e₀ + α¹e₁ + e₂x_(q) = α^(q − 1)e₀ + α^(q − 2)e₁ + ⋯ + αe_(q − 2) + e_(q − 1)

A random walk driven by signal x_(k) can be defined as follows:

$y_{k} = {{\sum\limits_{j = 1}^{k}x_{j}} = {\sum\limits_{j = 1}^{k}{\sum\limits_{i = 1}^{j}{\alpha^{j - 1}e_{i - 1}}}}}$

which for large values of j can be approximated using the infinite sumof a geometric series in terms of the uncorrelated signal e rather thanx:

$y_{k} = {{{\sum\limits_{j = 1}^{k}x_{j}} \approx {\sum\limits_{j = 1}^{k}{\frac{1}{1 - \alpha}e_{j}}}} = {\sum\limits_{j = 1}^{k}x_{j}^{\prime}}}$k>> 1

Thus, the autocorrelated driving signal x_(k) of the random walk can beconverted into an uncorrelated driving signal x_(k)′ with mean and powergiven by:

${{E\left\{ x_{k}^{\prime} \right\}} = \mu},{{E\left\{ \left( {x_{k}^{\prime} - \mu} \right)^{2} \right\}} = {\frac{1 + \alpha}{1 - \alpha}\sigma^{2}}},{{E\left\{ {x_{k}^{\prime}}^{2} \right\}} = {{\frac{1 + \alpha}{1 - \alpha}\sigma^{2}} + \mu^{2}}},{\sigma_{x^{\prime}}^{2} = {\frac{1 + \alpha}{1 - \alpha}\sigma^{2}}}$

where x_(k)′ represents the regulation signal Reg_(signal).Advantageously, this allows optimization constraints module 2314 todefine the probability of ruin in terms of the regulation signalReg_(signal).

In some embodiments, optimization constraints module 2314 determines aprobability p that the random walk driven by the sequence of −1 and 1will take the value of 1. In order to ensure that the random walk drivenby the sequence of −1 and 1 will behave the same as the random walkdriven by x_(k)′, optimization constraints module 2314 may select p suchthat the ratio of the mean to the standard deviation is the same forboth driving functions, as shown in the following equations:

$\frac{mean}{stdev} = {\frac{\mu}{\sqrt{\frac{1 + \alpha}{1 - \alpha}\sigma}} = {\overset{\sim}{\mu} = \frac{{2p} - 1}{\sqrt{4{p\left( {1 - p} \right)}}}}}$$p = {\frac{1}{2} \pm {\frac{1}{2}\sqrt{1 - \left( \frac{1}{{\overset{\sim}{\mu}}^{2} + 1} \right)}}}$

where {tilde over (μ)} is the ratio of the mean to the standarddeviation of the driving signal (e.g., Reg_(signal)) and μ is the changein state-of-charge over the frequency response period divided by thenumber of time steps within the frequency response period

$\left( {{i.e.},{\mu = \frac{\Delta{SOC}}{n}}} \right).$

For embodiments in which each frequency response period has a durationof one hour (i.e., 3600 seconds) and the interval between time steps istwo seconds, the number of time steps per frequency response period is1800 (i.e., n=1800). In the equation for p, the plus is used when {tildeover (μ)} is greater than zero, whereas the minus is used when {tildeover (μ)} is less than zero. Optimization constraints module 2314 mayalso ensure that both driving functions have the same number of standarddeviations away from zero (or ruin) to ensure that both random walkshave the same behavior, as shown in the following equation:

$z = \frac{{{SOC} \cdot C_{des}}\sqrt{4{p\left( {1 - p} \right)}}}{\sqrt{\frac{1 + \alpha}{1 - \alpha}\sigma}}$

Advantageously, the equations for p and z allow optimization constraintsmodule 2314 to define the probability of ruin P (i.e., the probabilityof battery 2008 fully depleting or reaching a fully charged state)within N time steps (n=1 . . . N) as a function of variables that areknown to high level controller 2212 and/or manipulated by high levelcontroller 2212. For example, the equation for p defines p as a functionof the mean and standard deviation of the regulation signalReg_(signal), which may be estimated by signal statistics predictor2218. The equation for z defines z as a function of the SOC of battery2008 and the parameters of the regulation signal Reg_(signal).

Optimization constraints module 2314 may use one or more of the previousequations to place constraints on ΔSOC·C_(des) and Reg_(award) given thecurrent SOC of battery 2008. For example, optimization constraintsmodule 2314 may use the mean and standard deviation of the regulationsignal Reg_(signal) to calculate p. Optimization constraints module 2314may then use p in combination with the SOC of battery 2008 to calculatez. Optimization constraints module 2314 may use p and z as inputs to theequation for the probability of ruin P. This allows optimizationconstraints module 2314 to define the probability or ruin P as afunction of the SOC of battery 2008 and the estimated statistics of theregulation signal Reg_(signal). Optimization constraints module 2314 mayimpose constraints on the SOC of battery 2008 to ensure that theprobability of ruin P within N time steps does not exceed a thresholdvalue. These constraints may be expressed as limitations on thevariables ΔSOC·C_(des) and/or Reg_(award), which are related to midpointb as previously described.

In some embodiments, optimization constraints module 2314 uses theequation for the probability of ruin P to define boundaries on thecombination of variables p and z. The boundaries represent thresholdswhen the probability of ruin P in less than N steps is greater than acritical value P_(cr) (e.g., P_(cr)=0.001). For example, optimizationconstraints module 2314 may generate boundaries that correspond to athreshold probability of battery 2008 fully depleting or reaching afully charged state during a frequency response period (e.g., in N=1800steps).

In some embodiments, optimization constraints module 2314 constrains theprobability of ruin P to less than the threshold value, which imposeslimits on potential combinations of the variables p and z. Since thevariables p and z are related to the SOC of battery 2008 and thestatistics of the regulation signal, the constraints may imposelimitations on ΔSOC·C_(des) and Reg_(award) given the current SOC ofbattery 2008. These constraints may also impose limitations on midpointb since the variables ΔSOC·C_(des) and Reg_(award) are related tomidpoint b. For example, optimization constraints module 2314 may setconstraints on the maximum bid Reg_(award) given a desired change in theSOC for battery 2008. In other embodiments, optimization constraintsmodule 2314 penalizes the objective function J given the bid Reg_(award)and the change in SOC.

Still referring to FIG. 23, variable SOC controller 2308 is shown toinclude a frequency response (FR) revenue estimator 2316. FR revenueestimator 2316 may be configured to estimate the frequency responserevenue that will result from a given midpoint b (e.g., a midpointprovided by midpoint optimizer 2312). The estimated frequency responserevenue may be used as the term Rev(Reg_(award,k)) in the objectivefunction J. Midpoint optimizer 2312 may use the estimated frequencyresponse revenue along with other terms in the objective function J todetermine an optimal midpoint b.

In some embodiments, FR revenue estimator 2316 uses a revenue model topredict frequency response revenue. An exemplary revenue model which maybe used by FR revenue estimator 2316 is shown in the following equation:

Rev(Reg_(award)) = Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

where CP_(cap), MR, and CP_(perf) are the energy market statisticsreceived from energy market predictor 2216 and Reg_(award) is a functionof the midpoint b. For example, capability bid calculator 2322 maycalculate Reg_(award) using the following equation:

Reg_(award) = P_(limit) − b

where P_(limit) is the power rating of power inverter 2006.

As shown above, the equation for frequency response revenue used by FRrevenue estimator 2316 does not include a performance score (or assumesa performance score of 1.0). This results in FR revenue estimator 2316estimating a maximum possible frequency response revenue that can beachieved for a given midpoint b (i.e., if the actual frequency responseof controller 2012 were to follow the regulation signal exactly).However, it is contemplated that the actual frequency response may beadjusted by low level controller 2214 in order to preserve the life ofbattery 2008. When the actual frequency response differs from theregulation signal, the equation for frequency response revenue can beadjusted to include a performance score. The resulting value function Jmay then be optimized by low level controller 2214 to determine anoptimal frequency response output which considers both frequencyresponse revenue and the costs of battery degradation, as described withreference to FIG. 24.

Still referring to FIG. 23, variable SOC controller 2308 is shown toinclude a battery degradation estimator 2318. Battery degradationestimator 2318 may estimate the cost of battery degradation that willresult from a given midpoint b (e.g., a midpoint provided by midpointoptimizer 2312). The estimated battery degradation may be used as theterm λ_(bat) in the objective function J. Midpoint optimizer 2312 mayuse the estimated battery degradation along with other terms in theobjective function J to determine an optimal midpoint b.

In some embodiments, battery degradation estimator 2318 uses a batterylife model to predict a loss in battery capacity that will result from aset of midpoints b, power outputs, and/or other variables that can bemanipulated by controller 2012. The battery life model may define theloss in battery capacity C_(loss,add) as a sum of multiple piecewiselinear functions, as shown in the following equation:

C_(loss, add) = f₁(T_(cell)) + f₂(SOC) + f₃(DOD) + f₄(PR) + f₅(ER) − C_(loss, nom)

where T_(cell) is the cell temperature, SOC is the state-of-charge, DODis the depth of discharge, PR is the average power ratio

$\left( {{e.g.},{{PR} = {{avg}\left( \frac{P_{avg}}{P_{des}} \right)}}} \right),$

and ER is the average effort ratio

$\left( {{e.g.},{{ER} = {{avg}\left( \frac{{\Delta P}_{bat}}{P_{des}} \right)}}} \right.$

of battery 2008. C_(loss,nom) is the nominal loss in battery capacitythat is expected to occur over time. Therefore, C_(loss,add) representsthe additional loss in battery capacity degradation in excess of thenominal value C_(loss,nom).

Battery degradation estimator 2318 may define the terms in the batterylife model as functions of one or more variables that have known values(e.g., estimated or measured values) and/or variables that can bemanipulated by high level controller 2212. For example, batterydegradation estimator 2318 may define the terms in the battery lifemodel as functions of the regulation signal statistics (e.g., the meanand standard deviation of Reg_(signal)), the campus power signalstatistics (e.g., the mean and standard deviation of P_(campus)),Reg_(award), midpoint b, the SOC of battery 2008, and/or other variablesthat have known or controlled values.

In some embodiments, battery degradation estimator 2318 measures thecell temperature T_(cell) using a temperature sensor configured tomeasure the temperature of battery 2008. In other embodiments, batterydegradation estimator 2318 estimates or predicts the cell temperatureT_(cell) based on a history of measured temperature values. For example,battery degradation estimator 2318 may use a predictive model toestimate the cell temperature T_(cell) as a function of the batterypower P_(bat), the ambient temperature, and/or other variables that canbe measured, estimated, or controlled by high level controller 2212.

Battery degradation estimator 2318 may define the variable SOC in thebattery life model as the SOC of battery 2008 at the end of thefrequency response period. The SOC of battery 2008 may be measured orestimated based on the control decisions made by controller 2012. Forexample, battery degradation estimator 2318 may use a predictive modelto estimate or predict the SOC of battery 2008 at the end of thefrequency response period as a function of the battery power P_(bat),the midpoint b, and/or other variables that can be measured, estimated,or controlled by high level controller 2212.

Battery degradation estimator 2318 may define the average power ratio PRas the ratio of the average power output of battery 2008 (i.e., P_(avg))to the design power

${P_{des}\left( {{e.g.},{{PR} = \frac{P_{avg}}{P_{des}}}} \right)}.$

The average power output of battery 2008 can be defined using thefollowing equation:

P_(avg) = E{Reg_(award)Reg_(signal) + b − P_(loss) − P_(campus)}

where the expression (Reg_(award)Reg_(signal)+b−P_(loss)−P_(campus))represents the battery power P_(bat). The expected value of P_(avg) isgiven by:

$P_{avg} = {{\sigma_{bat}\sqrt{\frac{2}{\pi}}{\exp\left( \frac{- \mu_{bat}^{2}}{2\sigma_{bat}^{2}} \right)}} + {{erf}\left( \frac{- \mu_{bat}}{\sqrt{2\sigma_{bat}^{2}}} \right)}}$

where μ_(bat) and σ_(bat) ² are the mean and variance of the batterypower P_(bat). The variables μ_(bat) and σ_(bat) ² may be defined asfollows:

μ_(bat) = Reg_(award)E{Reg_(signal)} + b − E{P_(loss)} − E{P_(campus)}σ_(bat)² = Reg_(award)²σ_(FR)² + σ_(campus)²

where σ_(FR) ² is the variance of Reg_(signal) and the contribution ofthe battery power loss to the variance σ_(bat) ² is neglected.

Battery degradation estimator 2318 may define the average effort ratioER as the ratio of the average change in battery power ΔP_(avg) to thedesign power

${P_{des}\left( {{i.e.},{{ER}\  = \frac{\Delta P_{avg}}{P_{des}}}} \right)}.$

The average change in battery power can be defined using the followingequation:

  Δ P_(avg) = E{P_(bat, k) − P_(bat, k − 1)}ΔP_(avg) = E{|Reg_(award)(Reg_(signal, k) − Reg_(signal, k − 1)) − (P_(loss, k) − P_(loss, k − 1)) − (P_(campus, k) − P_(campus, k − 1))|}

To make this calculation more tractable, the contribution due to thebattery power loss can be neglected. Additionally, the campus powerP_(campus) and the regulation signal Reg_(signal) can be assumed to beuncorrelated, but autocorrelated with first order autocorrelationparameters of α_(campus) and α, respectively. The argument inside theabsolute value in the equation for ΔP_(avg) has a mean of zero and avariance given by:

$\begin{matrix}{\sigma_{diff}^{2} = {E\left\{ \left\lbrack {{Re{g_{award}\left( {{Reg}_{{signal},k} - {Reg}_{{signal},{k - 1}}} \right)}} - \left( {P_{{campus},k} - P_{{campus},{k - 1}}} \right)} \right\rbrack^{2} \right\}}} \\{= {E\left\{ {{Re{g_{award}^{2}\left( {{Reg_{{signal},k}} - {Reg_{{signal},{k - 1}}}} \right)}^{2}} - \left( {P_{{campus},k} - P_{{campus},{k - 1}}} \right)^{2}} \right\}}} \\{= {{2{Re}{g_{award}^{2}\left( {1 - \alpha} \right)}\sigma_{FR}^{2}} + {2\left( {1 - \alpha_{campus}} \right)\sigma_{campus}^{2}}}}\end{matrix}$

Battery degradation estimator 2318 may define the depth of discharge DODas the maximum state-of-charge minus the minimum state-of-charge ofbattery 2008 over the frequency response period, as shown in thefollowing equation:

D O D = S O C_(max) − S O C_(min)

The SOC of battery 2008 can be viewed as a constant slope with a zeromean random walk added to it, as previously described. An uncorrelatednormal random walk with a driving signal that has zero mean has anexpected range given by:

${E\left\{ {\max - \min} \right\}} = {2\sigma\sqrt{\frac{2N}{\pi}}}$

where E{max−min} represent the depth of discharge DOD and can beadjusted for the autocorrelation of the driving signal as follows:

${E\left\{ {\max - \min} \right\}} = {2\sigma_{bat}\sqrt{\frac{1 + \alpha_{bat}}{1 - \alpha_{bat}}}\sqrt{\frac{2N}{\pi}}}$σ_(bat)² = Reg_(award)²σ_(FR)² + σ_(campus)²$\alpha_{bat} = \frac{{Reg_{award}^{2}\alpha\sigma_{FR}^{2}} + {\alpha_{campus}\sigma_{campus}^{2}}}{{Reg_{award}^{2}\sigma_{FR}^{2}} + \sigma_{campus}^{2}}$

If the SOC of battery 2008 is expected to change (i.e., is not zeromean), the following equation may be used to define the depth ofdischarge:

${E\left\{ {\max - \min} \right\}} = \left\{ \begin{matrix}{R_{0} + {{c \cdot \Delta}\;{{SOC} \cdot \exp}\left\{ {{- \alpha}\frac{R_{0} - {\Delta\;{SOC}}}{\sigma_{bat}}} \right\}}} & {{\Delta\;{SOC}} < R_{0}} \\{{\Delta\;{SOC}} + {{c \cdot R_{0} \cdot \exp}\left\{ {{- \alpha}\frac{{\Delta\;{SOC}} - R_{0}}{\sigma_{bat}}} \right\}}} & {{\Delta\;{SOC}} > R_{0}}\end{matrix} \right.$

where R₀ is the expected range with zero expected change in thestate-of-charge. Battery degradation estimator 2318 may use the previousequations to establish a relationship between the capacity lossC_(loss,add) and the control outputs provided by controller 2012.

Still referring to FIG. 23, variable SOC controller 2308 is shown toinclude a revenue loss estimator 2320. Revenue loss estimator 2320 maybe configured to estimate an amount of potential revenue that will belost as a result of the battery capacity loss C_(loss,acid). In someembodiments, revenue loss estimator 2320 converts battery capacity lossC_(loss,add) into lost revenue using the following equation:

R_(loss) = (CP_(cap) + MR ⋅ CP_(perf))C_(loss, add)P_(des)

where R_(loss) is the lost revenue over the duration of the frequencyresponse period.

Revenue loss estimator 2320 may determine a present value of the revenueloss R_(loss) using the following equation:

$\lambda_{bat} = {\left\lbrack \frac{1 - \left( {1 + \frac{i}{n}} \right)^{- n}}{\frac{i}{n}} \right\rbrack R_{loss}}$

where n is the total number of frequency response periods (e.g., hours)during which the revenue loss occurs and λ_(bat) is the present value ofthe revenue loss during the ith frequency response period. In someembodiments, the revenue loss occurs over ten years (e.g., n=87,600hours). Revenue loss estimator 2320 may provide the present value of therevenue loss λ_(bat) to midpoint optimizer 2312 for use in the objectivefunction J.

Midpoint optimizer 2312 may use the inputs from optimization constraintsmodule 2314, FR revenue estimator 2316, battery degradation estimator2318, and revenue loss estimator 2320 to define the terms in objectivefunction J. Midpoint optimizer 2312 may determine values for midpoint bthat optimize objective function J. In various embodiments, midpointoptimizer 2312 may use sequential quadratic programming, dynamicprogramming, or any other optimization technique.

Still referring to FIG. 23, high level controller 2212 is shown toinclude a capability bid calculator 2322. Capability bid calculator 2322may be configured to generate a capability bid Reg_(award) based on themidpoint b generated by constant SOC controller 2302 and/or variable SOCcontroller 2308. In some embodiments, capability bid calculator 2322generates a capability bid that is as large as possible for a givenmidpoint, as shown in the following equation:

Reg_(award) = P_(limit) − b

where P_(limit) is the power rating of power inverter 2006. Capabilitybid calculator 2322 may provide the capability bid to incentive provider2014 and to frequency response optimizer 2324 for use in generating anoptimal frequency response.

Filter Parameters Optimization

Still referring to FIG. 23, high level controller 2212 is shown toinclude a frequency response optimizer 2324 and a filter parametersoptimizer 2326. Filter parameters optimizer 2326 may be configured togenerate a set of filter parameters for low level controller 2214. Thefilter parameters may be used by low level controller 2214 as part of alow-pass filter that removes high frequency components from theregulation signal Reg_(signal). In some embodiments, filter parametersoptimizer 2326 generates a set of filter parameters that transform theregulation signal Reg_(signal) into an optimal frequency response signalRes_(FR). Frequency response optimizer 2324 may perform a secondoptimization process to determine the optimal frequency responseRes_(FR) based on the values for Reg_(award) and midpoint b. In thesecond optimization, the values for Reg_(award) and midpoint b may befixed at the values previously determined during the first optimization.

In some embodiments, frequency response optimizer 2324 determines theoptimal frequency response Res_(FR) by optimizing value function J shownin the following equation:

$J = {{\sum\limits_{k = 1}^{h}{{Rev}\left( {Reg}_{{award},k} \right)}} + {\sum\limits_{k = 1}^{h}{c_{k}b_{k}}} + {\min\limits_{period}\left( {P_{{campus},k} + b_{k}} \right)} - {\sum\limits_{k = 1}^{h}\lambda_{{bat},k}}}$

where the frequency response revenue Rev(Reg_(award)) is defined asfollows:

(Reg_(award)) = PS ⋅ Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

and the frequency response Res_(FR) is substituted for the regulationsignal Reg_(signal) in the battery life model used to calculateλ_(bat,k). The performance score PS may be based on several factors thatindicate how well the optimal frequency response Res_(FR) tracks theregulation signal Reg_(signal).

The frequency response Res_(FR) may affect both Rev(Reg_(award)) and themonetized cost of battery degradation λ_(bat). Closely tracking theregulation signal may result in higher performance scores, therebyincreasing the frequency response revenue. However, closely tracking theregulation signal may also increase the cost of battery degradationλ_(bat.) The optimized frequency response Res_(FR) represents an optimaltradeoff between decreased frequency response revenue and increasedbattery life (i.e., the frequency response that maximizes value J).

In some embodiments, the performance score PS is a composite weightingof an accuracy score, a delay score, and a precision score. Frequencyresponse optimizer 2324 may calculate the performance score PS using theperformance score model shown in the following equation:

${PS} = {{\frac{1}{3}PS_{acc}} + {\frac{1}{3}PS_{delay}} + {\frac{1}{3}PS_{prec}}}$

where PS_(acc) is the accuracy score, PS_(delay) is the delay score, andPS_(prec) is the precision score. In some embodiments, each term in theprecision score is assigned an equal weighting (e.g., ⅓). In otherembodiments, some terms may be weighted higher than others.

The accuracy score PS_(acc) may be the maximum correlation between theregulation signal Reg_(signal) and the optimal frequency responseRes_(FR). Frequency response optimizer 2324 may calculate the accuracyscore PS_(acc) using the following equation:

${PS_{acc}} = {\max\limits_{\delta}r_{{Reg},{{Res}{(\delta)}}}}$

where δ is a time delay between zero and δ_(max) (e.g., between zero andfive minutes).

The delay score PS_(delay) may be based on the time delay δ between theregulation signal Reg_(signal) and the optimal frequency responseRes_(FR). Frequency response optimizer 2324 may calculate the delayscore PS_(delay) using the following equation:

${PS}_{delay} = {\frac{{\delta\lbrack s\rbrack} - \delta_{\max}}{\delta_{\max}}}$

where δ[s] is the time delay of the frequency response Res_(FR) relativeto the regulation signal Reg_(signal) and δ_(max) is the maximumallowable delay (e.g., 5 minutes or 300 seconds).

The precision score PS_(prec) may be based on a difference between thefrequency response Res_(FR) and the regulation signal Reg_(signal).Frequency response optimizer 2324 may calculate the precision scorePS_(prec) using the following equation:

${PS}_{prec} = {1 - \frac{\sum{{{Res}_{FR} - {Reg}_{signal}}}}{\sum{{Reg}_{signal}}}}$

Frequency response optimizer 2324 may use the estimated performancescore and the estimated battery degradation to define the terms inobjective function J. Frequency response optimizer 2324 may determinevalues for frequency response Res_(FR) that optimize objective functionJ. In various embodiments, frequency response optimizer 2324 may usesequential quadratic programming, dynamic programming, or any otheroptimization technique.

Filter parameters optimizer 2326 may use the optimized frequencyresponse Res_(FR) to generate a set of filter parameters for low levelcontroller 2214. In some embodiments, the filter parameters are used bylow level controller 2214 to translate an incoming regulation signalinto a frequency response signal. Low level controller 2214 is describedin greater detail with reference to FIG. 24.

Still referring to FIG. 23, high level controller 2212 is shown toinclude a data fusion module 2328. Data fusion module 2328 is configuredto aggregate data received from external systems and devices forprocessing by high level controller 2212. For example, data fusionmodule 2328 may store and aggregate external data such as the campuspower signal, utility rates, incentive event history and/or weatherforecasts as shown in FIG. 26. Further, data fusion module 2328 maystore and aggregate data from low level controller 2214. For example,data fusion module 2328 may receive data such as battery SOC, batterytemperature, battery system temperature data, security device statusdata, battery voltage data, battery current data and/or any other dataprovided by battery system 2504. Data fusion module 2328 is described ingreater detail with reference to FIG. 26.

Low Level Controller

Referring now to FIG. 24, a block diagram illustrating low levelcontroller 2214 in greater detail is shown, according to an exemplaryembodiment. Low level controller 2214 may receive the midpoints b andthe filter parameters from high level controller 2212. Low levelcontroller 2214 may also receive the campus power signal from campus2002 and the regulation signal Reg_(signal) and the regulation awardReg_(award) from incentive provider 2014.

Predicting and Filtering the Regulation Signal

Low level controller 2214 is shown to include a regulation signalpredictor 2402. Regulation signal predictor 2402 may use a history ofpast and current values for the regulation signal Reg_(signal) topredict future values of the regulation signal. In some embodiments,regulation signal predictor 2402 uses a deterministic plus stochasticmodel trained from historical regulation signal data to predict futurevalues of the regulation signal Reg_(signal). For example, regulationsignal predictor 2402 may use linear regression to predict adeterministic portion of the regulation signal Reg_(signal) and an ARmodel to predict a stochastic portion of the regulation signalReg_(signal). In some embodiments, regulation signal predictor 2402predicts the regulation signal Reg_(signal) using the techniquesdescribed in U.S. patent application Ser. No. 14/717,593.

Low level controller 2214 is shown to include a regulation signal filter2404. Regulation signal filter 2404 may filter the incoming regulationsignal Reg_(signal) and/or the predicted regulation signal using thefilter parameters provided by high level controller 2212. In someembodiments, regulation signal filter 2404 is a low pass filterconfigured to remove high frequency components from the regulationsignal Reg_(signal). Regulation signal filter 2404 may provide thefiltered regulation signal to power setpoint optimizer 2406.

Determining Optimal Power Setpoints

Power setpoint optimizer 2406 may be configured to determine optimalpower setpoints for power inverter 2006 based on the filtered regulationsignal. In some embodiments, power setpoint optimizer 2406 uses thefiltered regulation signal as the optimal frequency response. Forexample, low level controller 2214 may use the filtered regulationsignal to calculate the desired interconnection power P_(POI)* using thefollowing equation:

P_(POI)^(*) = Reg_(award) ⋅ Reg_(filter) + b

where Reg_(filter) is the filtered regulation signal. Power setpointoptimizer 2406 may subtract the campus power P_(campus) from the desiredinterconnection power P_(POI)* to calculate the optimal power setpointsP_(SP) for power inverter 2006, as shown in the following equation:

P_(SP) = P_(POI)^(*) − P_(campus)

In other embodiments, low level controller 2214 performs an optimizationto determine how closely to track P_(POI)*. For example, low levelcontroller 2214 is shown to include a frequency response optimizer 2408.Frequency response optimizer 2408 may determine an optimal frequencyresponse Res_(FR) by optimizing value function J shown in the followingequation:

$J = {{\sum\limits_{k = 1}^{h}{{Rev}\left( {Reg}_{{award},k} \right)}} + {\sum\limits_{k = 1}^{h}{c_{k}b_{k}}} + {\min\limits_{period}\left( {P_{{campus},k} + b_{k}} \right)} - {\sum\limits_{k = 1}^{h}\lambda_{{bat},k}}}$

where the frequency response Res_(FR) affects both Rev(Reg_(award)) andthe monetized cost of battery degradation λ_(bat). The frequencyresponse Res_(FR) may affect both Rev(Reg_(award)) and the monetizedcost of battery degradation λ_(bat.) The optimized frequency responseRes_(FR) represents an optimal tradeoff between decreased frequencyresponse revenue and increased battery life (i.e., the frequencyresponse that maximizes value J). The values of Rev(Reg_(award)) andλ_(bat,k) may be calculated by FR revenue estimator 2410, performancescore calculator 2412, battery degradation estimator 2414, and revenueloss estimator 2416.

Estimating Frequency Response Revenue

Still referring to FIG. 24, low level controller 2214 is shown toinclude a FR revenue estimator 2410. FR revenue estimator 2410 mayestimate a frequency response revenue that will result from thefrequency response Res_(FR). In some embodiments, FR revenue estimator2410 estimates the frequency response revenue using the followingequation:

Rev(Reg_(award)) = PS ⋅ Reg_(award)(CP_(cap) + MR ⋅ CP_(perf))

where Reg_(award), CP_(cap), MR, and CP_(perf) are provided as knowninputs and PS is the performance score.

Low level controller 2214 is shown to include a performance scorecalculator 2412. Performance score calculator 2412 may calculate theperformance score PS used in the revenue function. The performance scorePS may be based on several factors that indicate how well the optimalfrequency response Res_(FR) tracks the regulation signal Reg_(signal).In some embodiments, the performance score PS is a composite weightingof an accuracy score, a delay score, and a precision score. Performancescore calculator 2412 may calculate the performance score PS using theperformance score model shown in the following equation:

${PS} = {{\frac{1}{3}{PS}_{acc}} + {\frac{1}{3}{PS}_{delay}} + {\frac{1}{3}{PS}_{prec}}}$

where PS_(acc) is the accuracy score, PS_(delay) is the delay score, andPS_(prec) is the precision score. In some embodiments, each term in theprecision score is assigned an equal weighting (e.g., ⅓). In otherembodiments, some terms may be weighted higher than others. Each of theterms in the performance score model may be calculated as previouslydescribed with reference to FIG. 23.

Estimating Battery Degradation

Still referring to FIG. 24, low level controller 2214 is shown toinclude a battery degradation estimator 2414. Battery degradationestimator 2414 may be the same or similar to battery degradationestimator 2318, with the exception that battery degradation estimator2414 predicts the battery degradation that will result from thefrequency response Res_(FR) rather than the original regulation signalReg_(signal). The estimated battery degradation may be used as the termλ_(batt) in the objective function J. Frequency response optimizer 2408may use the estimated battery degradation along with other terms in theobjective function J to determine an optimal frequency responseRes_(FR).

In some embodiments, battery degradation estimator 2414 uses a batterylife model to predict a loss in battery capacity that will result fromthe frequency response Res_(FR). The battery life model may define theloss in battery capacity C_(loss,add) as a sum of multiple piecewiselinear functions, as shown in the following equation:

C_(loss, add) = f₁(T_(cell)) + f₂(SOC) + f₃(DOD) + f₄(PR) + f₅(ER) − C_(loss, norm)

where T_(cell) is the cell temperature, SOC is the state-of-charge, DODis the depth of discharge, PR is the average power ratio

$\left( {{e.g.},{{PR} = {{avg}\left( \frac{P_{avg}}{P_{des}} \right)}}} \right),$

and ER is the average effort ratio

$\left( {{e.g.},{{ER} = {{avg}\left( \frac{{\Delta P}_{bat}}{P_{des}} \right)}}} \right.$

of battery 2008. C_(loss,nom) is the nominal loss in battery capacitythat is expected to occur over time. Therefore, C_(loss,add) representsthe additional loss in battery capacity degradation in excess of thenominal value C_(loss,nom). The terms in the battery life model may becalculated as described with reference to FIG. 23, with the exceptionthat the frequency response Res_(FR) is used in place of the regulationsignal Reg_(signal).

Still referring to FIG. 24, low level controller 2214 is shown toinclude a revenue loss estimator 2416. Revenue loss estimator 2416 maybe the same or similar to revenue loss estimator 2320, as described withreference to FIG. 23. For example, revenue loss estimator 2416 may beconfigured to estimate an amount of potential revenue that will be lostas a result of the battery capacity loss C_(loss,add). In someembodiments, revenue loss estimator 2416 converts battery capacity lossC_(loss,add) into lost revenue using the following equation:

R_(loss) = (CP_(cap) + MR ⋅ CP_(perf))C_(loss, add)P_(des)

where R_(loss) is the lost revenue over the duration of the frequencyresponse period.

Revenue loss estimator 2320 may determine a present value of the revenueloss R_(loss) using the following equation:

$\lambda_{bat} = {\left\lbrack \frac{1 - \left( {1 + \frac{i}{n}} \right)^{- n}}{\frac{i}{n}} \right\rbrack R_{loss}}$

where n is the total number of frequency response periods (e.g., hours)during which the revenue loss occurs and λ_(bat) is the present value ofthe revenue loss during the ith frequency response period. In someembodiments, the revenue loss occurs over ten years (e.g., n=87,600hours). Revenue loss estimator 2320 may provide the present value of therevenue loss λ_(bat) to frequency response optimizer 2408 for use in theobjective function J.

Frequency response optimizer 2408 may use the estimated performancescore and the estimated battery degradation to define the terms inobjective function J. Frequency response optimizer 2408 may determinevalues for frequency response Res_(FR) that optimize objective functionJ. In various embodiments, frequency response optimizer 2408 may usesequential quadratic programming, dynamic programming, or any otheroptimization technique.

Frequency Response Control System

Referring now to FIG. 25, a block diagram of a frequency responsecontrol system 2500 is shown, according to exemplary embodiment. Controlsystem 2500 is shown to include frequency response controller 2012,which may be the same or similar as previously described. For example,frequency response controller 2012 may be configured to perform anoptimization process to generate values for the bid price, thecapability bid, and the midpoint b. In some embodiments, frequencyresponse controller 2012 generates values for the bids and the midpointb periodically using a predictive optimization scheme (e.g., once everyhalf hour, once per frequency response period, etc.). Frequency responsecontroller 2012 may also calculate and update power setpoints for powerinverter 2006 periodically during each frequency response period (e.g.,once every two seconds). As shown in FIG. 25, frequency responsecontroller 2012 is in communication with one or more external systemsvia communication interface 2502. Additionally, frequency responsecontroller 2012 is also shown as being in communication with a batterysystem 2504.

In some embodiments, the interval at which frequency response controller2012 generates power setpoints for power inverter 2006 is significantlyshorter than the interval at which frequency response controller 2012generates the bids and the midpoint b. For example, frequency responsecontroller 2012 may generate values for the bids and the midpoint bevery half hour, whereas frequency response controller 2012 may generatea power setpoint for power inverter 2006 every two seconds. Thedifference in these time scales allows frequency response controller2012 to use a cascaded optimization process to generate optimal bids,midpoints b, and power setpoints.

In the cascaded optimization process, high level controller 2212determines optimal values for the bid price, the capability bid, and themidpoint b by performing a high level optimization. The high levelcontroller 2212 may be a centralized server within the frequencyresponse controller 2012. The high level controller 2212 may beconfigured to execute optimization control algorithms, such as thosedescribed herein. In one embodiment, the high level controller 2212 maybe configured to run an optimization engine, such as a MATLABoptimization engine.

Further, the cascaded optimization process allows for multiplecontrollers to process different portions of the optimization process.As will be described below, the high level controller 2212 may be usedto perform optimization functions based on received data, while a lowlevel controller 2214 may receive optimization data from the high levelcontroller 2212 and control the battery system 2504 accordingly. Byallowing independent platforms to perform separation portions of theoptimization, the individual platforms may be scaled and tunedindependently. For example, the controller 2012 may be able to be scaledup to accommodate a larger battery system 2504 by adding additional lowlevel controllers to control the battery system 2504. Further, the highlevel controller 2212 may be modified to provide additional computingpower for optimizing battery system 2504 in more complex systems.Further, modifications to either the high level controller 2212 or thelow level controller 2214 will not affect the other, thereby increasingoverall system stability and availability.

In system 2500, high level controller 2212 may be configured to performsome or all of the functions previously described with reference toFIGS. 22-24. For example, high level controller 2212 may select midpointb to maintain a constant state-of-charge in battery 2008 (i.e., the samestate-of-charge at the beginning and end of each frequency responseperiod) or to vary the state-of-charge in order to optimize the overallvalue of operating system 2500 (e.g., frequency response revenue minusenergy costs and battery degradation costs), as described below. Highlevel controller 2212 may also determine filter parameters for a signalfilter (e.g., a low pass filter) used by a low level controller 2214.

The low level controller 2214 may be a standalone controller. In oneembodiment, the low level controller 2214 is a Network Automation Engine(NAE) controller from Johnson Controls. However, other controllershaving the required capabilities are also contemplated. The requiredcapabilities for the low level controller 2214 may include havingsufficient memory and computing power to run the applications, describedbelow, at the required frequencies. For example, certain optimizationcontrol loops (described below) may require control loops running at 200ms intervals. However, intervals of more than 200 ms and less than 200ms may also be required. These control loops may require reading andwriting data to and from the battery inverter. The low level controller2214 may also be required to support Ethernet connectivity (or othernetwork connectivity) to connect to a network for receiving bothoperational data, as well as configuration data. The low levelcontroller 2214 may be configured to perform some or all of thefunctions previously described with reference to FIGS. 22-24.

The low level controller 2214 may be capable of quickly controlling oneor more devices around one or more setpoints. For example, low levelcontroller 2214 uses the midpoint b and the filter parameters from highlevel controller 2212 to perform a low level optimization in order togenerate the power setpoints for power inverter 2006. Advantageously,low level controller 2214 may determine how closely to track the desiredpower P_(POI)* at the point of interconnection 2010. For example, thelow level optimization performed by low level controller 2214 mayconsider not only frequency response revenue but also the costs of thepower setpoints in terms of energy costs and battery degradation. Insome instances, low level controller 2214 may determine that it isdeleterious to battery 2008 to follow the regulation exactly and maysacrifice a portion of the frequency response revenue in order topreserve the life of battery 2008.

Low level controller 2214 may also be configured to interface with oneor more other devises or systems. For example, the low level controller2214 may communicate with the power inverter 2006 and/or the batterymanagement unit 2510 via a low level controller communication interface2512. Communications interface 2512 may include wired or wirelessinterfaces (e.g., jacks, antennas, transmitters, receivers,transceivers, wire terminals, etc.) for conducting data communicationswith various systems, devices, or networks. For example, communicationsinterface 2512 may include an Ethernet card and port for sending andreceiving data via an Ethernet-based communications network and/or aWiFi transceiver for communicating via a wireless communicationsnetwork. Communications interface 2512 may be configured to communicatevia local area networks or wide area networks (e.g., the Internet, abuilding WAN, etc.) and may use a variety of communications protocols(e.g., BACnet, MODBUS, CAN, IP, LON, etc.).

As described above, the low level controller 2214 may communicatesetpoints to the power inverter 2006. Furthermore, the low levelcontroller 2214 may receive data from the battery management unit 2510via the communication interface 2512. The battery management unit 2510may provide data relating to a state of charge (SOC) of the batteries2008. The battery management unit 2510 may further provide data relatingto other parameters of the batteries 2008, such as temperature, realtime or historical voltage level values, real time or historical currentvalues, etc. The low level controller 2214 may be configured to performtime critical functions of the frequency response controller 2012. Forexample, the low level controller 2214 may be able to perform fast loop(PID, PD, PI, etc.) controls in real time.

The low level controller 2214 may further control a number of othersystems or devices associated with the battery system 2504. For example,the low level controller may control safety systems 2516 and/orenvironmental systems 2518. In one embodiment, the low level controller2214 may communicate with and control the safety systems 2516 and/or theenvironmental systems 2518 through an input/output module (IOM) 2519. Inone example, the IOM may be an IOM controller from Johnson Controls. TheIOM may be configured to receive data from the low level controller andthen output discrete control signals to the safety systems 2516 and/orenvironmental systems 2518. Further, the IOM 2519 may receive discreteoutputs from the safety systems 2516 and/or environmental systems 2220,and report those values to the low level controller 2214. For example,the IOM 2519 may provide binary outputs to the environmental system2518, such as a temperature setpoint; and in return may receive one ormore analog inputs corresponding to temperatures or other parametersassociated with the environmental systems 2518. Similarly, the safetysystems 2516 may provide binary inputs to the IOM 2519 indicating thestatus of one or more safety systems or devices within the batterysystem 2504. The IOM 2519 may be able to process multiple data pointsfrom devices within the battery system 2504. Further, the IOM may beconfigured to receive and output a variety of analog signals (4-20 mA,0-5V, etc.) as well as binary signals.

The environmental systems 2518 may include HVAC devices such as roof-topunits (RTUs), air handling units (AHUs), etc. The environmental systems2518 may be coupled to the battery system 2504 to provide environmentalregulation of the battery system 2504. For example, the environmentalsystems 2518 may provide cooling for the battery system 2504. In oneexample, the battery system 2504 may be contained within anenvironmentally sealed container. The environmental systems 2518 maythen be used to not only provide airflow through the battery system2504, but also to condition the air to provide additional cooling to thebatteries 2008 and/or the power inverter 2006. The environmental systems2518 may also provide environmental services such as air filtration,liquid cooling, heating, etc. The safety systems 2516 may providevarious safety controls and interlocks associated with the batterysystem 2504. For example, the safety systems 2516 may monitor one ormore contacts associated with access points on the battery system. Wherea contact indicates that an access point is being accessed, the safetysystems 2516 may communicate the associated data to the low levelcontroller 2214 via the IOM 2519. The low level controller may thengenerate and alarm and/or shut down the battery system 2504 to preventany injury to a person accessing the battery system 2504 duringoperation. Further examples of safety systems can include air qualitymonitors, smoke detectors, fire suppression systems, etc.

Still referring to FIG. 25, the frequency response controller 2012 isshown to include the high level controller communications interface2502. Communications interface 2502 may include wired or wirelessinterfaces (e.g., jacks, antennas, transmitters, receivers,transceivers, wire terminals, etc.) for conducting data communicationswith various systems, devices, or networks. For example, communicationsinterface 2502 may include an Ethernet card and port for sending andreceiving data via an Ethernet-based communications network and/or aWiFi transceiver for communicating via a wireless communicationsnetwork. Communications interface 2502 may be configured to communicatevia local area networks or wide area networks (e.g., the Internet, abuilding WAN, etc.) and may use a variety of communications protocols(e.g., BACnet, IP, LON, etc.).

Communications interface 2502 may be a network interface configured tofacilitate electronic data communications between frequency responsecontroller 2012 and various external systems or devices (e.g., campus2002, energy grid 2004, incentive provider 2014, utilities 2220, weatherservice 2222, etc.). For example, frequency response controller 2012 mayreceive inputs from incentive provider 2014 indicating an incentiveevent history (e.g., past clearing prices, mileage ratios, participationrequirements, etc.) and a regulation signal. Further, the incentiveprovider 2014 may communicate utility rates provided by utilities 2220.Frequency response controller 2012 may receive a campus power signalfrom campus 2002, and weather forecasts from weather service 2222 viacommunications interface 2502. Frequency response controller 2012 mayprovide a price bid and a capability bid to incentive provider 2014 andmay provide power setpoints to power inverter 2006 via communicationsinterface 2502.

Data Fusion

Turning now to FIG. 26, a block diagram illustrating data flow into thedata fusion module 2328 is shown, according to some embodiments. Asshown in FIG. 26, the data fusion module 2328 may receive data frommultiple devices and/or systems. In one embodiment, the data fusionmodule 2328 may receive all data received by the high level controller2212. For example, the data fusion module 2328 may receive campus datafrom the campus 2002. Campus data may include campus power requirements,campus power requests, occupancy planning, historical use data, lightingschedules, HVAC schedules, etc. In a further embodiment, the data fusionmodule 2328 may receive weather data from the weather service 2222. Theweather service 2222 may include current weather data (temperature,humidity, barometric pressure, etc.), weather forecasts, historicalweather data, etc. In a still further embodiment, the data fusion module2328 may receive utility data from the utilities 2220. In some examples,the data fusion module 2328 may receive some or all of the utility datavia the incentive provider 2014. Examples of utility data may includeutility rates, future pricing schedules, anticipated loading, historicaldata, etc. Further, the incentive provider 2014 may further add datasuch as capability bid requests, price bid requests, incentive data,etc.

The data fusion module 2328 may further receive data from the low levelcontroller 2214. In some embodiments, the low level controller mayreceive data from multiple sources, which may be referred tocollectively as battery system data. For example, the low levelcontroller 2214 may receive inverter data from power inverter 2006.Example inverter data may include inverter status, feedback points,inverter voltage and current, power consumption, etc. The low levelcontroller 2214 may further receive battery data from the batterymanagement unit 2510. Example battery data may include battery SOC,depth of discharge data, battery temperature, battery cell temperatures,battery voltage, historical battery use data, battery health data, etc.In other embodiment, the low level controller 2214 may receiveenvironmental data from the environmental systems 2518. Examples ofenvironmental data may include battery system temperature, batterysystem humidity, current HVAC settings, setpoint temperatures,historical HVAC data, etc. Further, the low level controller 2214 mayreceive safety system data from the safety systems 2516. Safety systemdata may include access contact information (e.g. open or closedindications), access data (e.g. who has accessed the battery system 2504over time), alarm data, etc. In some embodiments, some or all of thedata provided to the low level controller 2214 is via an input/outputmodule, such as IOM 2519. For example, the safety system data and theenvironmental system data may be provided to the low level controller2214 via an input/output module, as described in detail in regards toFIG. 25.

The low level controller 2214 may then communicate the battery systemdata to the data fusion module 2328 within the high level controller2212. Additionally, the low level controller 2214 may provide additionaldata to the data fusion module 2328, such as setpoint data, controlparameters, etc.

The data fusion module 2328 may further receive data from otherstationary power systems, such as a photovoltaic system 2602. Forexample, the photovoltaic system 2602 may include one or morephotovoltaic arrays and one or more photovoltaic array power inverters.The photovoltaic system 2602 may provide data to the data fusion module2328 such as photovoltaic array efficiency, photovoltaic array voltage,photovoltaic array inverter output voltage, photovoltaic array inverteroutput current, photovoltaic array inverter temperature, etc. In someembodiments, the photovoltaic system 2602 may provide data directly tothe data fusion module 2328 within the high level controller 2212. Inother embodiments, the photovoltaic system 2602 may transmit the data tothe low level controller 2214, which may then provide the data to thedata fusion module 2328 within the high level controller 2212.

The data fusion module 2328 may receive some or all of the datadescribed above, and aggregate the data for use by the high levelcontroller 2212. In one embodiment, the data fusion module 2328 isconfigured to receive and aggregate all data received by the high levelcontroller 2212, and to subsequently parse and distribute the data toone or more modules of the high level controller 2212, as describedabove. Further, the data fusion module 2328 may be configured to combinedisparate heterogeneous data from the multiple sources described above,into a homogeneous data collection for use by the high level controller2212. As described above, data from multiple inputs is required tooptimize the battery system 2504, and the data fusion module 2328 cangather and process the data such that it can be provided to the modulesof the high level controller 2212 efficiently and accurately. Forexample, extending battery lifespan is critical for ensuring properutilization of the battery system 2504. By combining battery data suchas temperature and voltage, along with external data such as weatherforecasts, remaining battery life may be more accurately determined bythe battery degradation estimator 2318, described above. Similarly,multiple data points from both external sources and the battery system2504 may allow for more accurate midpoint estimations, revenue lossestimations, battery power loss estimation, or other optimizationdetermination, as described above.

Turning now to FIG. 27, a block diagram showing a database schema 2700of the system 2500 is shown, according to some embodiments. The schema2700 is shown to include an algorithm run data table 2702, a data pointdata table 2704, an algorithm_run time series data table 2708 and apoint time series data table 2710. The data tables 2702, 2704, 2708,2710 may be stored on the memory of the high level controller 2212. Inother embodiments, the data tables 2702, 2704, 2708, 2710 may be storedon an external storage device and accessed by the high level controlleras required.

As described above, the high level controller performs calculation togenerate optimization data for the battery optimization system 2500.These calculation operations (e.g. executed algorithms) may be referredto as “runs.” As described above, one such run is the generation of amidpoint b which can subsequently be provided to the low levelcontroller 2214 to control the battery system 2504. However, other typesof runs are contemplated. Thus, for the above described run, themidpoint b is the output of the run. The detailed operation of a run,and specifically a run to generate midpoint b is described in detailabove.

The algorithm run data table 2702 may include a number of algorithm runattributes 2712. Algorithm run attributes 2712 are those attributesassociated with the high level controller 2212 executing an algorithm,or “run”, to produce an output. The runs can be performed at selectedintervals of time. For example, the run may be performed once everyhour. However, in other examples, the run may be performed more thanonce every hour, or less than once every hour. The run is then performedand by the high level controller 2212 and a data point is output, forexample a midpoint b, as described above. The midpoint b may be providedto the low level controller 2214 to control the battery system 2504,described above in the description of the high level controller 2504calculating the midpoint b.

In one embodiment, the algorithm run attributes contain all theinformation necessary to perform the algorithm or run. In a furtherembodiment, the algorithm run attributes 2712 are associated with thehigh level controller executing an algorithm to generate a midpoint,such as midpoint b described in detail above. Example algorithm runattributes may include an algorithm run key, an algorithm run ID (e.g.“midpoint,” “endpoint,” “temperature_setpoint,” etc.), Associated Run ID(e.g. name of the run), run start time, run stop time, target run time(e.g. when is the next run desired to start), run status, run reason,fail reason, plant object ID (e.g. name of system), customer ID, runcreator ID, run creation date, run update ID, and run update date.However, this list is for example only, as it is contemplated that thealgorithm run attributes may contain multiple other attributesassociated with a given run.

As stated above, the algorithm run data table 2702 contains attributesassociated with a run to be performed by the high level controller 2212.In some embodiments, the output of a run, is one or more “points,” suchas a midpoint. The data point data table 2704 contains data pointattributes 2714 associated with various points that may be generated bya run. These data point attributes 2714 are used to describe thecharacteristics of the data points. For example, the data pointattributes may contain information associated with a midpoint datapoint. However, other data point types are contemplated. Exampleattributes may include point name, default precision (e.g. number ofsignificant digits), default unit (e.g. cm, degrees Celsius, voltage,etc.), unit type, category, fully qualified reference (yes or no),attribute reference ID, etc. However, other attributes are furtherconsidered.

The algorithm_run time series data table 2708 may contain time seriesdata 2716 associated with a run. In one embodiment, the algorithm_runtime series data 2716 includes time series data associated with aparticular algorithm run ID. For example, a run associated withdetermining the midpoint b described above, may have an algorithm run IDof Midpoint_Run. The algorithm_run time series data table 2708 maytherefore include algorithm_run time series data 2716 for all runsperformed under the algorithm ID Midpoint_Run. Additionally, thealgorithm_run time series data table 2708 may also contain run timeseries data associated with other algorithm IDs as well. The run timeseries data 2716 may include past data associated with a run, as well asexpected future information. Example run time series data 2716 mayinclude final values of previous runs, the unit of measure in theprevious runs, previous final value reliability values, etc. As anexample, a “midpoint” run may be run every hour, as described above. Thealgorithm_run time series data 2716 may include data related to thepreviously performed runs, such as energy prices over time, system data,etc. Additionally, the algorithm_run time series data 2716 may includepoint time series data associated with a given point, as describedbelow.

The point time series data table 2710 may include the point time seriesdata 2718. The point time series data 2718 may include time series dataassociated with a given data “point.” For example, the above describedmidpoint b may have a point ID of “Midpoint.” The point time series datatable 2710 may contain point time series data 2718 associated with the“midpoint” ID, generated over time. For example, previous midpointvalues may be stored in the point time series data table 2718 for eachperformed run. The point time series data table 2710 may identify theprevious midpoint values by time (e.g. when the midpoint was used by thelow level controller 2214), and may include information such as themidpoint value, reliability information associated with the midpoint,etc. In one embodiment, the point time series data table 2718 may beupdated with new values each time a new “midpoint” is generated via arun. Further, the point time series data 2716 for a given point mayinclude information independent of a given run. For example, the highlevel controller 2212 may monitor other data associated with themidpoint, such as regulation information from the low level controller,optimization data, etc., which may further be stored in the point timeseries data table 2710 as point time series data 2718.

The above described data tables may be configured to have an associationor relational connection between them. For example, as shown in FIG. 27,the algorithm_run data table 2702 may have a one-to-many association orrelational relationship with the algorithm_run time series associationtable 2708, as there may be many algorithm_run time series data points2716 for each individual algorithm run ID. Further, the data point datatable 2704 may have a one-to many relationship with the point timeseries data table 2710, as there may be many point time series datapoints 2718 associated with an individual point. Further, the point timeseries data table 2710 may have a one to many relationship with thealgorithm_run time series data table 2708, as there may be multipledifferent point time series data 2718 associated with a run.Accordingly, the algorithm_run data table 2702 has a many-to-manyrelationship with the data point data table 2704, as there may be manypoints, and/or point time series data 2718, associated with may runtypes; and, there may be multiple run types associated with many points

By using the above mentioned association data tables 2702, 2704, 2708,2710, optimization of storage space required for storing time seriesdata may be achieved. With the addition of additional data used in abattery optimization system, such as battery optimization system 2500described above, vast amounts of time series data related to dataprovided by external sources (weather data, utility data, campus data,building automation systems (BAS) or building management systems (BMS)),and internal sources (battery systems, photovoltaic systems, etc.) isgenerated. By utilizing association data tables, such as those describedabove, the data may be optimally stored and accessed.

Configuration of Exemplary Embodiments

The construction and arrangement of the systems and methods as shown inthe various exemplary embodiments are illustrative only. Although only afew embodiments have been described in detail in this disclosure, manymodifications are possible (e.g., variations in sizes, dimensions,structures, shapes and proportions of the various elements, values ofparameters, mounting arrangements, use of materials, orientations,etc.). For example, the position of elements may be reversed orotherwise varied and the nature or number of discrete elements orpositions may be altered or varied. Accordingly, all such modificationsare intended to be included within the scope of the present disclosure.The order or sequence of any process or method steps may be varied orre-sequenced according to alternative embodiments. Other substitutions,modifications, changes, and omissions may be made in the design,operating conditions and arrangement of the exemplary embodimentswithout departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and programproducts on memory or other machine-readable media for accomplishingvarious operations. The embodiments of the present disclosure may beimplemented using existing computer processors, or by a special purposecomputer processor for an appropriate system, incorporated for this oranother purpose, or by a hardwired system. Embodiments within the scopeof the present disclosure include program products or memory comprisingmachine-readable media for carrying or having machine-executableinstructions or data structures stored thereon. Such machine-readablemedia can be any available media that can be accessed by a generalpurpose or special purpose computer or other machine with a processor.By way of example, such machine-readable media can comprise RAM, ROM,EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to carry or store desired program code in the form ofmachine-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer or othermachine with a processor. Combinations of the above are also includedwithin the scope of machine-readable media. Machine-executableinstructions include, for example, instructions and data which cause ageneral purpose computer, special purpose computer, or special purposeprocessing machines to perform a certain function or group of functions.

Although the figures may show a specific order of method steps, theorder of the steps may differ from what is depicted. Also two or moresteps may be performed concurrently or with partial concurrence. Suchvariation will depend on the software and hardware systems chosen and ondesigner choice. All such variations are within the scope of thedisclosure. Likewise, software implementations could be accomplishedwith standard programming techniques with rule based logic and otherlogic to accomplish the various connection steps, processing steps,comparison steps and decision steps.

What is claimed is:
 1. A control system comprising: building equipmentconfigured to consume electrical energy and generate thermal energy;electrical energy storage configured to store and discharge electricalenergy; and a controller configured to determine, for a plurality oftime steps within a time horizon, an amount of electrical energy tostore in the electrical energy storage or discharge from the electricalenergy storage using a value function comprising: an expected revenuefrom participating in an incentive-based demand response (IBDR) program;an expected cost of participating in the IBDR program; and a penaltycost based on an amount by which a predicted output of the buildingequipment or the electrical energy storage changes between time stepswithin the time horizon; the controller configured to control theelectrical energy storage to store or discharge the amount of electricalenergy determined using the value function.
 2. The control system ofclaim 1, wherein the expected revenue from participating in the IBDRprogram comprises revenue gained by selling electrical energy stored inthe electrical energy storage to an energy grid.
 3. The control systemof claim 1, wherein the expected cost of participating in the IBDRprogram is based on an estimated amount of electrical energy consumed bythe building equipment in order to participate in the IBDR program. 4.The control system of claim 1, wherein the value function furthercomprises a monetized cost of capacity loss for the electrical energystorage.
 5. The control system of claim 4, wherein the controller isconfigured to estimate the monetized cost of capacity loss for theelectrical energy storage as a function of the amount of electricalenergy to store in the electrical energy storage or discharge from theelectrical energy storage determined using the value function.
 6. Thecontrol system of claim 4, wherein the controller is configured toestimate the monetized cost of capacity loss for the electrical energystorage using a battery capacity loss model.
 7. The control system ofclaim 1, wherein the value function further comprises a penalty cost ofequipment degradation.
 8. The control system of claim 7, wherein thecontroller is configured to estimate the penalty cost of equipmentdegradation as a function of an estimated number of on/off commandsprovided to the building equipment within the time horizon.
 9. Thecontrol system of claim 1, further comprising thermal energy storageconfigured to store and discharge at least a portion of the thermalenergy generated by the building equipment.
 10. A method for controllingelectrical energy storage, the method comprising: determining, for aplurality of time steps within a time horizon, an amount of electricalenergy to store in the electrical energy storage or discharge from theelectrical energy storage using a value function comprising: an expectedrevenue from participating in an incentive-based demand response (IBDR)program; an expected cost of participating in the IBDR program; and apenalty cost based on an amount by which a predicted output of theelectrical energy storage changes between time steps within the timehorizon; and controlling the electrical energy storage to store ordischarge the amount of electrical energy determined using the valuefunction.
 11. The method of claim 10, wherein the expected revenue fromparticipating in the IBDR program comprises revenue gained by sellingelectrical energy stored in the electrical energy storage to an energygrid.
 12. The method of claim 10, wherein the expected cost ofparticipating in the IBDR program is based on an estimated amount ofelectrical energy consumed by the building equipment in order toparticipate in the IBDR program.
 13. The method of claim 10, wherein thevalue function further comprises a monetized cost of capacity loss forthe electrical energy storage.
 14. The method of claim 13, furthercomprising estimating the monetized cost of capacity loss for theelectrical energy storage as a function of the amount of electricalenergy to store in the electrical energy storage or discharge from theelectrical energy storage determined using the value function.
 15. Themethod of claim 13, further comprising estimating the monetized cost ofcapacity loss for the electrical energy storage using a battery capacityloss model.
 16. The method of claim 10, wherein the value functionfurther comprises a penalty cost of equipment degradation.
 17. Themethod of claim 16, further comprising estimating the penalty cost ofequipment degradation as a function of an estimated number of on/offcommands provided to building equipment within the time horizon.
 18. Themethod of claim 10, further comprising operating building equipment;wherein the penalty cost is based on an amount by which a predictedoutput of the building equipment changes between time steps within thetime horizon.
 19. One or more non-transitory computer-readable mediastoring instructions that, when executed by one or more processors,cause the one or more processors to perform operations comprising:estimating an expected revenue from participating in an incentive baseddemand response (IBDR) program; estimating an expected cost ofparticipating in the IBDR program; estimating a penalty cost based on anamount by which a predicted output of controllable equipment changesbetween time steps within a time horizon; determining whether toparticipate in the IBDR program based on the expected revenue and atleast one of the expected cost or the penalty cost; and operating thecontrollable equipment to participate in the IBDR program or notparticipate in the IBDR program based on a result of the determining.20. The one or more non-transitory computer-readable media of claim 19,wherein the controllable equipment comprises at least one of: buildingequipment configured to consume electrical energy and generate thermalenergy; electrical energy storage configured to store and dischargeelectrical energy; or thermal energy storage configured to store anddischarge thermal energy.